///Set correct XMLHTTPRequest Object
function getXMLHTTPRequest() {
	var req = false;
	try {
			/* Initializes Firefox et al */
			req = new XMLHttpRequest();
		}
		catch(err1) {
			try {
				/* Initializes some IE versions */
				req = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch(err2) {
				try {
					/* Initializes other IE versions */
					req = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(err3) {
					/* Browser doesn't appear to support AJAX*/
					req = false;	
				}
			}
		}
	return req;
}

//Initialize XMLHTTPObjective Object
var objRequestor = getXMLHTTPRequest();

//Response target variable
var varTarget = '';

//Pass Request to server
function callServer(strAct,intID,intPageNum,strTarget,strItem) {
	//Construct Message
	var strURL = 'mods/ajaxproc.php?';
	switch (strAct) {
		case 'Home': { strURL = strURL + 'act=Home&cid=' + intID + '&pnum=' + intPageNum; varTarget = strTarget; break; }
		case 'GetContent': { strURL = strURL + 'act=GetContent&cid=' + intID + '&pnum=' + intPageNum; varTarget = strTarget; break; }
		case 'GetClip': { strURL = strURL + 'act=GetClip&aid=' + intID + '&pnum=' + intPageNum; varTarget = strTarget; break; }
		case 'GetBlock': { strURL = strURL + 'act=GetBlock&bid=' + intID; varTarget = strTarget; break; }
	}
	strURL = strURL + '&ajaxItem=' + strItem;
	var dtRand = '&rand='+ new Date().getTime(); //Randomizer for GET anti-caching
	var strFinalMsg = strURL + dtRand;
	//Open XMLHTTPRequest server connection
	objRequestor.open('GET',strFinalMsg,true);
	//Set response function
	objRequestor.onreadystatechange = serverResponse;
	//Send the request
	objRequestor.send(null)
}

function sendMail() {
	//Construct Message
	var strURL = 'mods/processmail.php?';
	strURL = strURL + 'Name=' + encodeURI(document.getElementById("Name").value);
	strURL = strURL + '&State=' + encodeURI(document.getElementById("State").value);
	strURL = strURL + '&Email=' + encodeURI(document.getElementById("Email").value);
	var dtRand = '&rand='+ new Date().getTime(); //Randomizer for GET anti-caching
	var strFinalMsg = strURL + dtRand;
	//Open XMLHTTPRequest server connection
	objRequestor.open('GET',strFinalMsg,true);
	//Set response function
	objRequestor.onreadystatechange = mailServerResponse;
	//Send the request
	objRequestor.send(null)
}

function mailServerResponse() {
	//4 = completed
	if (objRequestor.readyState == 4) {
		//Clear Pre-Loader
		document.getElementById('formMsg').innerHTML = '';
		//Make sure server status is "OK"
		if (objRequestor.status == 200) {
			var txtResponse = objRequestor.responseText;
			if (txtResponse.indexOf('Error') > 0) {
				//Show mailform error message
				document.getElementById('formMsg').innerHTML = txtResponse;			
			} else {
				//Show mailform success message
				document.getElementById('theMailer').innerHTML = txtResponse;
			}
		} else {
			//An error occurred
			alert('An AJAX mailer error: '+objRequestor.status+' - '+objRequestor.statusText);
		}
	} else {
		//Show pre-loader
		document.getElementById('formMsg').innerHTML = 'Please Wait';
	}
}

function serverResponse() {
	//4 = completed
	if (objRequestor.readyState == 4) {
		//Clear pre-loader icon
		document.getElementById('mainContent').innerHTML = '';
		document.getElementById('centerBlock').innerHTML = '';
		//Make sure server status is "OK"
		if (objRequestor.status == 200) {
			document.getElementById(varTarget).innerHTML = objRequestor.responseText;
			if (varTarget == 'centerBlock') {
				document.getElementById('centerBlock').innerHTML = '<div id="flashGallery" align="center"></div>';
				var soGal2 = new SWFObject('http://www.destaniwolf.com/swfs/gallery.swf', 'flashGallery', '580', '415', '8','#FFFFFF');
				soGal2.addParam('quality', 'high');
				soGal2.addParam('menu', 'false');
				soGal2.addParam('loop', 'false');
				soGal2.addParam('wmode', 'opaque');
				soGal2.write('flashGallery');
			}
		} else {
			//An error occurred
			alert('An error occurred: '+objRequestor.statusText);
		}
	} else {
		//Show pre-loader
		document.getElementById(varTarget).innerHTML = 'Loading...';
	}
}

function launchJavascript(responseText) {
  var ScriptFragment = '(?:<script.*?>)((\n|.)*?)(?:</script>)';        
  var match    = new RegExp(ScriptFragment, 'img');
  var scripts  = responseText.match(match);
  if(scripts) {
    var js = '';
    for(var s = 0; s < scripts.length; s++) {
      var match = new RegExp(ScriptFragment, 'im');
      js += scripts[s].match(match)[1];
    }
    eval(js);
  }
}
