/*
INCLUDE THIS FILE AFTER INSERTING THE YAHOO LIBRARY JS FILES
*/
/*
 START OF 
 Ajax Features
 */
var lastDiv;
var lastDivHTML;

function submitSync(url, div) {
	var connectionObject = YAHOO.util.Connect.getConnectionObject(false);
	var randomnumber = Math.floor(Math.random() * 100000)
	divElement = document.getElementById(div);
	//divElement.innerHTML = "<img src='icons/AjaxWait20.gif'/><strong>Loading...</strong>" + divElement.innerHTML;
	divElement.innerHTML = divElement.innerHTML;
	connectionObject.conn.open('GET', url + '&random=' + randomnumber, false);
	connectionObject.conn.send(null);
	//var connectionObject = YAHOO.util.Connect.asyncRequest('GET', url + '&random=' + randomnumber, callback);
	if (connectionObject.conn.status == 200) {
		divElement.innerHTML = connectionObject.conn.responseText;
	} 
}

function submitAsyncURL(url, callbackName) {
	var randomnumber = Math.floor(Math.random() * 100000);
	var request = YAHOO.util.Connect.asyncRequest('GET', url + '&random=' + randomnumber, callbackName);
}

function submitAsync(url, div) {
	submitAsyncWithCallback(url, div, callback);
}

function submitAsyncWithCallback(url, div, callbackName) {
	if (url == null || url == '')
		return;
	waitElement = document.getElementById('waitPanel_' + div);
	divElement = document.getElementById(div);
	lastDiv = div;
	lastDivHTML = divElement.innerHTML;
	if (waitElement == null) {
		//divElement.innerHTML = "<img src='icons/AjaxWait20.gif'/><strong>Loading...</strong>" + divElement.innerHTML;
		divElement.innerHTML = divElement.innerHTML;
	}
	else {
		waitElement.innerHTML = "<img src='icons/AjaxWait20.gif'/>";
	}
	var randomnumber = Math.floor(Math.random() * 100000);
	divParameters = "";
	try{divParameters = document.getElementById(div+".params").value;}
	catch(e){}
	var request = YAHOO.util.Connect.asyncRequest('POST', url + '&random=' + randomnumber, callbackName, divParameters);
}
/*YAHOO.namespace("golemur");
var initialized;
function createAjaxWaitPanel() {
	if (initialized)
		return;
	YAHOO.golemur.wait = new YAHOO.widget.Panel('wait',
	{ 	width:'240px',
		fixedcenter:true,
		close:false,
		draggable:false,
		modal:true
	});
	YAHOO.golemur.wait.setHeader('GoLemur...');
	YAHOO.golemur.wait.setBody("<img src=\"http://us.i1.yimg.com/us.yimg.com/i/us/per/gr/gp/rel_interstitial_loading.gif\"/>");
	YAHOO.golemur.wait.render(document.body);
	
	initialized = true;
}
function showAjaxWaitPanel() {
	//createAjaxWaitPanel();
	YAHOO.golemur.wait.show();
}*/
var handleSuccess = function(o) {
	if(lastDiv==null)return;
	var div = document.getElementById(lastDiv);
	try{
	if(div!=null && div.id!=null && div.parentNode.id==div.id)div=div.parentNode;
	if(div!=null && div.id!=null && div.parentNode.id==div.id)div=div.parentNode;
	if(div!=null && div.id!=null && div.parentNode.id==div.id)div=div.parentNode;
	}catch(e){}	
	if(o.responseText !== undefined) {
		div.innerHTML = "" + o.responseText;
	}
	try{eval(lastDiv.replace(new RegExp("\\.","g"),"_")+"_OnShow();");}catch(e){}
}
var handleFailure = function(o) {
	alert('Submission failed with status: ' + o.status + ', please try again later');
}
var callback = {
  success:handleSuccess, failure:handleFailure
};
//YAHOO.util.Event.addListener(window, "load", createAjaxWaitPanel);

//@desc    transform the elements of a form object and their values into request string( such as "action=1&name=surfchen")
//@param   form_obj          the form object
//@usage   formToRequestString(document.form1)
//@notice  this function can not be used to upload a file
function formToRequestString(form_obj)
{
    var query_string='';
    var and='';
    for (var i=0;i<form_obj.length ;i++ )
    {
        e=form_obj[i];
        if (e.name) {
            if (e.type=='select-one') {
                element_value=e.options[e.selectedIndex].value;
            } else if (e.type=='select-multiple') {
                for (var n=0;n<e.length;n++) {
                    var op=e.options[n];
                    if (op.selected) {
                        query_string+=and+e.name+'='+encodeURIComponent(op.value);
                        and="&"
                    }
                }
                continue;
            } else if (e.type=='checkbox' || e.type=='radio') {
                if (e.checked==false) {   
                    continue;   
                }   
                element_value=e.value;
            } else if (typeof e.value != 'undefined') {
                element_value=e.value;
            } else {
                continue;
            }
            query_string+=and+e.name+'='+encodeURIComponent(element_value);
            and="&"
        }
    }
    return query_string;
}

function getRootDIV(divId){
	var  div= document.getElementById(divId);
	try{
	if(div!=null && div.id!=null && div.parentNode.id==div.id)div=div.parentNode;
	if(div!=null && div.id!=null && div.parentNode.id==div.id)div=div.parentNode;
	if(div!=null && div.id!=null && div.parentNode.id==div.id)div=div.parentNode;
	}catch(e){}
	return div;
}	

function refreshPage(tileName){
	var pageURL;
	try{ pageURL = document.getElementById(tileName+'.currentPageURL').value; } catch(e){}
	if( pageURL == null || pageURL == "" )
		return;
	refreshDIV(pageURL, tileName);
}

function refreshDIV(pageURL, tileName){
	var oldPageURL = "";
	try{ oldPageURL = document.getElementById(tileName+'.currentPageURL').value; } catch(e){}
	var refreshPageCallBack =
		{
			success: function(res)
				{  var newPageURL = "";
				   try{newPageURL = document.getElementById(tileName+'.currentPageURL').value; } catch(e){}
				   if ( newPageURL!= oldPageURL) return; //this tile has been changed
				  if(res.responseText !== undefined)
					getRootDIV(tileName).innerHTML = "" + res.responseText;
					try{eval(tileName.replace(new RegExp("\\.","g"),"_")+"_OnRefresh();");
					}catch(e){}
				},
			failure: function(res) {/*Do nothing*/},
			argument: [tileName]
		}
	divParameters = "";
	try{ divParameters = document.getElementById(div+".params").value; }catch(e){}
	var request = YAHOO.util.Connect.asyncRequest('POST', pageURL + '&random=' + Math.floor(Math.random()*100000), refreshPageCallBack, divParameters);
}