var http_request = false;
var DoAjaxLayer = "";
var viewportHeight;
var viewportWidth;

if (window.innerHeight) {
	viewportHeight = window.innerHeight;
	viewportWidth = window.innerWidth;
}
else if (document.documentElement && document.documentElement.clientHeight) {
	viewportHeight = document.documentElement.clientHeight;
	viewportWidth = document.documentElement.clientWidth;
}
else {
	viewportHeight = document.body.clientHeight;
	viewportWidth = document.body.clientWidth;
}

function make_request(posturi, posthandle, postsend)
{
	http_request = false;
	if (window.XMLHttpRequest) {
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) {
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('ERROR; No connection to server. Try again later.');
			return false;
	}
	http_request.onreadystatechange = posthandle;
	http_request.open('POST', posturi, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(postsend);
}


function DoClose(LayerToPop){
	myLightbox.end();
}

function DoAjax(get_string, parameters, layer, requ) {
	var Required = requ.split("|");
	for (i=0;i<Required.length;i++){
		var reqtype = Required[i].split(":");
		if (reqtype[1]==1){
			if (!isValidEmail(document.getElementById(reqtype[0]).value)) {
				var SetError = 1;
			}
		}
		else {
			if (document.getElementById(reqtype[0]).value == "") {
				var SetError = 1;
			}
		}
	}
	if (!SetError) {
		DoAjaxLayer = layer;
		make_request(get_string, DoAjax_handle, parameters);
	}
	else { alert(EmailError); }
	return false;
}

function DoAjax_handle() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var out = http_request.responseText;
			out = out.replace('<br />','||BR||');
			out = removeHTMLTags(out);
			out = out.replace(/^\s*|\s*$/g,'');
			out = out.replace('||BR||','\n');
			alert(out);
			setTimeout("DoClose('TipAFriend');",100);
		} else {
			alert('Error;  no connection to server. Try again.');
		}
	}
}

function DoVote_handle() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var out = http_request.responseText;
			alert(out);
		} else {
			alert('Error;  no connection to server. Try again.');
		}
	}
}

function DoVote(on, cid){
	make_request('/sharedscripts/Ajaks_Vote.php', DoVote_handle, 'cid='+cid+'&user_rating='+on);
}

function isValidEmail(str) {
   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}


function removeHTMLTags(input){
	var strInputCode = input;
	strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
		return (p1 == "lt")? "<" : ">";
	});
	var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
	return strTagStrippedText;
}

function blank_handle() {

}

function OmfgHeClickedTheGrej() {
make_request('/sharedscripts/Ajaks_Count.php', blank_handle, 'c=nelson');
}

function in_array(myValue,myArray) {
    function equals(a,b) {
        return (a === b);
    }
    for (var i in myArray) {
        if (equals(myArray[i],myValue)) {
            return true;
		}
    }
    return false;
}

function DocMPWrite(toWrite, Where, dataReplace) { // Fix for object-tags.
	var ToReplace = toWrite.replace(/#data#/g, dataReplace);
	document.getElementById(Where).innerHTML = ToReplace;
}

function DocWrite(toWrite) { // Fix for object-tags.
	document.write(toWrite);
}

addLoadEvent = function(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
};

hPause = function(msec){
	var nDate = new Date(); var cDate = null;
	do { cDate = new Date(); }
	while(cDate-nDate < msec);
};

reLoadImages = function(){
	var anchors = document.getElementsByTagName('a');
	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		var relAttribute = String(anchor.getAttribute('rel'));
		if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('reloadthisimage'))){
			anchor.src = anchor.src;
			hPause(10);
		}
	}
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function bodyHeight() {
	if (parseInt(navigator.appVersion)>3) {
		 if (navigator.appName=="Netscape") {
			return window.innerHeight;
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) {
			return document.body.offsetHeight;
		}
	}
}
function bodyWidth() {
	if (parseInt(navigator.appVersion)>3) {
		 if (navigator.appName=="Netscape") {
			return window.innerWidth
		}
		if (navigator.appName.indexOf("Microsoft")!=-1) {
			return document.body.offsetWidth;
		}
	}
}