

/* AJAX Functions */




// Object creation

function GetXmlHttpObject()
{
	var xmlHttp=null;

	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	} 
	
	return xmlHttp;
}







// Parse entire form and pass to PHP

function submitAjax(thisForm, ajaxArea, thisTool)
{
	
	var formData;
	
	
	
	for (i=0; i < document.getElementById(thisForm).elements.length; i++)
	{
		if (document.getElementById(thisForm).elements[i].value != "undefined")
		{
			/* For radio buttons */
			if (document.getElementById(thisForm).elements[i].type == "radio" || document.getElementById(thisForm).elements[i].type == "checkbox")
			{
				if (document.getElementById(thisForm).elements[i].checked == true)
				{
					formData = formData + "&" + document.getElementById(thisForm).elements[i].name + "=" + escape(document.getElementById(thisForm).elements[i].value);
				}
			}
			/* For text input */
			else 
			{
				var formThisData = escape(document.getElementById(thisForm).elements[i].value);
				formData = formData + "&" + document.getElementById(thisForm).elements[i].name + "=" + formThisData;
			}
		}
	}
	
	xmlHttp=GetXmlHttpObject();

		
	xmlHttp.onreadystatechange = function () { 
		if (xmlHttp.readyState==4){ 
			document.getElementById(ajaxArea).innerHTML=xmlHttp.responseText;
		} 
	}
	
	// POST METHOD
	
	xmlHttp.open("POST","ajax.php?ajax=1&module="+moduleIdent+"&tool="+thisTool+"&sid="+thisSID,true);

	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset:UTF-8");
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(formData);
		
	showLoader(ajaxArea);
	
	return false;
	

	
}



// Pass a variable over GET and receive PHP response

function submitAjaxGet(ajaxArea, ajaxString)
{	
	if (typeof openElements[ajaxArea] == "undefined")
	{
		if (openElements[ajaxArea] == "open") alert('Open!'); // what's this!!
	}
	
	xmlHttp=GetXmlHttpObject();

	xmlHttp.onreadystatechange = function () { 
		if (xmlHttp.readyState==4){ 
			document.getElementById(ajaxArea).innerHTML=xmlHttp.responseText;
		} 
	}
	
	
	xmlHttp.open("GET","ajax.php?ajax=1&module="+moduleIdent+"&tool="+ajaxString+"&sid="+thisSID, true); // GET METHOD

	xmlHttp.send(null);
	
} 



function readUrl()
{
	var urlAnchor = unescape(self.document.location.hash.substring(2));	
	var anchorItems = urlAnchor.split("/");
	
	if (anchorItems[0] == "page" && anchorItems[1])
	{
		goTo('index.php?module='+moduleIdent+'&show='+anchorItems[1]);
	}

}



function formLoad(layIdent)
{
	showLoader('module_wrapper_inner', 'ajax_wide_loader'); 
	submitAjaxGet('module_wrapper_inner', 'forms&action=load_form&module='+moduleIdent+'&layout='+layIdent);
	return false;
}

function pageLoad(layIdent, mdlIdent)
{
	if (!mdlIdent) var mdlIdent = 'site';
	
	showLoader('module_wrapper_inner', 'ajax_wide_loader'); 
	submitAjaxGet('module_wrapper_inner', 'units&action=load_layout&module='+mdlIdent+'&layout='+layIdent);
	return false;
}

function pagePopLoad(layIdent, popWidth, popHeight, popScroll, mdlIdent)
{
	if (!mdlIdent) var mdlIdent = 'site';
	if (!popScroll) var popScroll = 0;
	
	showLoader('wrapper_ajax', 'ajax_wide_loader'); 
	submitAjaxGet('wrapper_ajax', 'units&action=load_layout&module='+mdlIdent+'&layout='+layIdent+'&pop_width='+popWidth+'&pop_height='+popHeight+'&pop_scroll='+popScroll);
	
	return false;
}


function showMemberForm(memberAction)
{	

	putToCenter(500, 500, 'general_ajax');
	showLoader('general_ajax', 'ajax_500_loader');
	submitAjaxGet('general_ajax', 'members&init=1&action=' + memberAction);
}




function showLoader(ajaxArea, targetStyle, loaderImg)
{
	if (!loaderImg) var loaderImg='ajax_loader.gif';

	var loaderPage = '<div id="ajax_loader" class="'+targetStyle+'"><img src="templates/'+currentSkin+'/'+currentImages+'/'+loaderImg+'" alt="Loading..." /><span id="ajax_loader_message"></span></div>';

	document.getElementById(ajaxArea).innerHTML=loaderPage;
	
	setTimeout('stillLoading(1)', 10000);
	
}
function showLineLoader(ajaxArea, targetStyle)
{

	var loaderPage = '<div id="ajax_loader" class="'+targetStyle+'"><img src="templates/'+currentSkin+'/'+currentImages+'/ajax_swoosh.gif" alt="Loading..." /><span id="ajax_loader_message"></span></div>';

	document.getElementById(ajaxArea).innerHTML=loaderPage;
	
	setTimeout('stillLoading(1)', 10000);
	
}



function showTextLoader(ajaxArea, loaderText)
{
	document.getElementById(ajaxArea).innerHTML="<div class='ajax_text_loader'>"+loaderText+"</div>";	
}





function showWideLoader(ajaxArea)
{
	document.getElementById(ajaxArea).innerHTML='<div class="ajax_wide_loader"><img src="templates/'+currentSkin+'/'+currentImages+'/ajax_loading.gif" alt="Loading..." /><span id="ajax_loader_message"><br/>Uploading...Please wait</span></div>';
	
	//setTimeout('stillLoading(1)', 10000);

	
}

function stillLoading(c) {
		
	var c = c;
	var loadingDelayed = "<br /><br /><i>Loading...</i>"; 
	var loadingMoreDelayed = "<br /><br /><i>Still loading...</i>"; 
	var loadingTotallyDelayed = "<br /><br /><i><b>If you are uploading media</b>, please wait for the upload to complete. <br /><br />Otherwise the server is too busy to respond.</i>"; 
	
	if (c == 1) var loadingStatus = loadingDelayed;
	if (c == 2) var loadingStatus = loadingMoreDelayed;
	if (c == 3) var loadingStatus = loadingTotallyDelayed;
	if (c > 3) return false;
	
	if (document.getElementById('ajax_loader_message') != null)
	{
		document.getElementById('ajax_loader_message').innerHTML = document.getElementById('ajax_loader_message').innerHTML + loadingStatus;
	}
	else {
		return false;
	}
	c = c+1;
	setTimeout("stillLoading("+c+")", 10000);
	c = 1;

}





/* Ratings */


function activateRating(imgId, ratingNo)
{
		
	for (i = 1; i < 6; i++)
	{
		targetId = imgId + "_" + i;

		if (i <= ratingNo)
		{
			document.getElementById(targetId).src = 'templates/'+currentSkin+'/'+currentImages+'/star_on.png';
		}
		else 
		{
			document.getElementById(targetId).src = 'templates/'+currentSkin+'/'+currentImages+'/star_off.png';
		}
	}

}



function restoreRating(imgId, postRating)
{
	var postRating = Number(postRating);
	
	//alert(postRating - 1);

	for (i = 1; i < 6; i++)
	{
	
		var stars = "";
		
		var postRatingCeil = Math.ceil(postRating);
		
		if (i < postRating || i == postRating) stars = "star_on";
		
		else if (i ==  postRatingCeil) stars = "star_half";
		
		else stars = "star_off";

		targetId = imgId + "_" + i;
		
		if (document.getElementById(targetId))
			document.getElementById(targetId).src = 'templates/'+currentSkin+'/'+currentImages+'/' + stars + '.png';
	}


}


// Used to show order Details

function getMembershipDetails(membership_id)
{
	// send data to ajax
	submitAjaxGet('general_ajax', 'memberships&init=1&action=membership_details&membership_id=' + membership_id);

	// center the window
	putToCenter(500, 500, 'general_ajax');
}




//outer ajax calls
function submitAjaxGetOuter(ajaxArea, sourceUrl)
{	
	if (typeof openElements[ajaxArea] == "undefined")
	{
		if (openElements[ajaxArea] == "open") alert('Open!'); // what's this!!
	}
	
	xmlHttp=GetXmlHttpObject();

	xmlHttp.onreadystatechange = function () { 
		if (xmlHttp.readyState==4){ 
			document.getElementById(ajaxArea).innerHTML=xmlHttp.responseText;
		} 
	}
	
	
	xmlHttp.open("GET",sourceUrl, true); // GET METHOD

	xmlHttp.send(null);
	
} 


function submitPluginState(ajaxArea, ajaxString, mode) // mode 0 to use 1 for configure 
{	

	
    xmlHttp=GetXmlHttpObject();

    xmlHttp.onreadystatechange = function () { 
        if (xmlHttp.readyState==4){ 
            var newElem = document.createElement('tr');
            newElem.innerHTML = xmlHttp.responseText;
            document.getElementById(ajaxArea).innerHTML=newElem.innerHTML;
        } 
    }
	
    var actionMode = (mode==1)?'&usage_mode=administrative':'';
	
    xmlHttp.open("GET","ajax.php?ajax=1&module="+moduleIdent+"&tool="+ajaxString+actionMode+"&sid="+thisSID, true); // GET METHOD

    xmlHttp.send(null);
	
}







