var isBusy = false;
var contentType = "application/x-www-form-urlencoded; charset=UTF-8";

document.getElementsByClassName = function(findClass) {
	var allMatches = [];
	var myClass = new RegExp('\\b'+findClass+'\\b');
	var elem = this.getElementsByTagName('*');
	for(var knt = 0; knt < elem.length; knt++){
		var classes = elem[knt].className;
		if (myClass.test(classes)) allMatches.push(elem[knt]);
	}
	return allMatches;
}; 


function createRequestObject() {
	var XmlHttpRequestObject;
	if (typeof XMLHttpRequest != "undefined"){
		XmlHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject){
	// look up the highest possible MSXML version
		var tryPossibleVersions=["MSXML2.XMLHttp.5.0",
		"MSXML2.XMLHttp.4.0",
		"MSXML2.XMLHttp.3.0",
		"MSXML2.XMLHttp",
		"Microsoft.XMLHttp"];
		for (i = 0; i < tryPossibleVersions.length; i++){
			try{
				XmlHttpRequestObject = new ActiveXObject(tryPossibleVersions[i]);
				break;
			}
				catch (xmlHttpRequestObjectError){
					//return false;
			}
		}
	}
	return XmlHttpRequestObject;
}
var httpAJAXObject = createRequestObject();


//Eliminate & inside of variables
function ajaxStringPrep(prepWho){
	if(prepWho){
		var myVar = new String(prepWho);
		return prepWho.replace(/&/g, "~amp~");
	}else{
		return prepWho;	
	}
}

//postamble timestamp
function timestamp(){
	var now = new Date();
	return "&timestampPostamble="+now.getTime();
}

// Send Generic non-defined AJAX request
function sndGenericReq(callFile, variables, response){
	if(httpAJAXObject){
		if(isBusy){ 
			httpAJAXObject.onreadystatechange = function (){
				httpAJAXObject = createRequestObject();
			}
			httpAJAXObject.abort();
		}
		isBusy = true;		
		httpAJAXObject.open("post", callFile, true);
     	httpAJAXObject.setRequestHeader("Content-Type", contentType);
     	variables += timestamp();
     	httpAJAXObject.send(variables);
     	if(response == ''){
	    	response = 'handleEvalResponse';	//default response, eval returned content
     	}
     	httpAJAXObject.onreadystatechange = eval(response);
		
	}
}


//Handle Insert to Main Content Container Response
function handleInsertToDialogResponse() {
    if(httpAJAXObject){
		if(httpAJAXObject.readyState == 4){
        	var response = httpAJAXObject.responseText;
        	if(response!="ERROR"){
	        	if(document.getElementById('jQueryDialog')){
					document.getElementById('jQueryDialog').innerHTML = '';
	        		document.getElementById('jQueryDialog').innerHTML = response;
	        		document.getElementById('jQueryDialog').style.height = '600px';
	        		$(function() {
        				$("#jQueryDialog").dialog("open"); 
        				return false;
        			});
        		}
				$(".ui-dialog-overlay").click( function(){$('#slideshowPics').cycle('pause'); $("#jQueryDialog").dialog("close");});
				
				$('#myHCarousel').jcarousel({
			        	vertical: false,
						scroll: 3});
        	}	
        }
        isBusy = false;
	}else{}
}

function handleEvalResponse() {
	if(httpAJAXObject){
		if(httpAJAXObject.readyState == 4){
        	var response = httpAJAXObject.responseText;
        	if(response!="ERROR"){
	        	setTimeout(response, 1);
        	}	
        }
        isBusy = false;
	}else{}
	endLoad();
}
