try {
$(document).ready(function() {
	showJSElements();
	stripeMe();
	});
 } catch (e) {
}

$(document).ready(function(){
	$(".confirm").click(function(event) {
 		if (confirm('Are you sure you wish to delete this?'))
 			{return true;} else {return false;}
 	});
});

var nbsp = 160;    // non-breaking space char
var node_text = 3; // DOM text node-type
var emptyString = /^\s*$/;
var glb_vfld;      // retain vfld for timer thread

// Browser detection variables
var bw  = new DetectBrowser();

function DetectBrowser() {
	this.ver=navigator.appVersion;
	this.agent=navigator.userAgent;
	this.dom=document.getElementById?1:0;
	this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6;
	this.mac=this.agent.indexOf("Mac")>-1;
	this.ns6=(this.dom && parseInt(this.ver,10) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
	return this;
}

// Is the order right?
// Should layer be document.layers[field_name];
function fieldOb(field_name){
	var field;
	if(document.getElementById)
		{field = document.getElementById(field_name);}
	else if(document.layers)
		{field = document[field_name];}
	else
		{field = document.all[field_name];}
	return field;
}

function formObj(form_id, field_name) {
	return fieldOb(form_id)[field_name];
}

function trim(str) {return str.replace(/^\s+|\s+$/g, '')};

// Delayed focus setting to get around IE bug
function setFocusDelayed() {glb_vfld.focus();}
function setfocus(vfld) {glb_vfld = vfld;setTimeout( 'setFocusDelayed()', 100 );}

// Menu tab functions
function MM_swapImage() {
  var i,j=0,x,a=MM_swapImage.arguments;
  document.MM_sr=[];
  for(i=0;i<(a.length-2);i+=3){
   if ((x=MM_findObj(a[i]))!==null){
   	document.MM_sr[j++]=x;
   	if(!x.oSrc){x.oSrc=x.src;}
   	x.src=a[i+2];
	 }
  }
}
function MM_swapImgRestore() {
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) {x.src=x.oSrc;}
}

function MM_preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) {d.MM_p=[];}
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) {x=d.getElementById(n);} return x;
}

function PreLoadTabOvers() {
 MM_preloadImages(
 	'/images/menu_myhome_over.gif',
 	'/images/menu_perform_over.gif',
 	'/images/menu_sponsor_over.gif',
 	'/images/menu_redeem_over.gif',
 	'/images/menu_help_over.gif',
 	'/images/menu_login_over.gif',
 	'/images/menu_logout_over.gif',
 	'/images/menu_register_over.gif');
}

// For row/page form selector
function submit_option() {
	var tmp;
	var win = ""+window.location;
	var query = win.split("?");
	var new_query = query[0]+"?";
	if (query.length == 2) {
		var query_params = query[1].split("&");
		for (var i=0; i<query_params.length; i++)	{
			tmp = query_params[i].split('=');
			if (tmp[0] != "p" && tmp[0]!="rpp") {
				new_query = new_query+query_params[i]+"&";
			}
		}
	}
	new_query = new_query+"p=1&"+"rpp="+document.pg_form.rpp.value;
	window.location = new_query;
}

// Myhome functions
function setcookie(cookiename, cookievalue) {
		var thecookie = cookiename + "=" + cookievalue;
		document.cookie = thecookie;
}

function getcookie(searchname) {
	var cookies = document.cookie.split("; ");
		for (var i = 0; i < cookies.length; i++) {
			var cookiecrumbs = cookies[i].split("=");
			var cookiename = cookiecrumbs[0];
			var cookievalue = cookiecrumbs[1];
			if (cookiename == searchname) {
				return cookievalue;
			}
		}
	return false;
}

function showelement(elementid) {
	try {
	  document.getElementById(elementid).style.display = '';
	} catch (e) {
	}
}

function show(elementid) {
	document.getElementById(elementid).style.display = '';
}

function hideelement(elementid) {
	try {
	  document.getElementById(elementid).style.display = 'none';
	} catch (e) {
	}
}

function hide(elementid) {
	document.getElementById(elementid).style.display = 'none';
}

function showhide(elementid) {
	var element = document.getElementById(elementid);
	if (element.style.display === '') {
		element.style.display = 'none';
	}	else {
		element.style.display = '';
	}
}

function showhidemem(elementid) {
	var element = document.getElementById(elementid);
	if (element.style.display === '') {
		element.style.display = 'none';
		setcookie(elementid, "hide");
	}
	else {
		element.style.display = '';
		setcookie(elementid, "show");
	}
}

function recallsetting(elementid) {
	var showhide = getcookie(elementid);
	if (showhide === false || showhide === 'show') {
		showelement(elementid);
	} else {
		hideelement(elementid);
	}
}

function show1sthide2nd(element1,element2) {
	showelement(element1);
	hideelement(element2);
}

function showhideflip(element1,element2) {
	showhide(element1);
	showhide(element2);
}

function showhideinvite(element1,element2) {
	// Compensate for FireFox bug that loses text cursor
	var temp = document.getElementById('submitfav');
	temp.focus();
	showhideflip(element1,element2);		
	temp = document.getElementById('name_0');
	temp.focus();
}

function checkUncheckAll(ckname, source) {
	$("input[@name^='"+ckname+"']").attr('checked',source.checked);
}

function checkSource(ckboxes, allboxid) {
	$("#"+allboxid).attr('checked',($("input[@name^='"+ckboxes+"']").length == $("input[@name^='"+ckboxes+"']:checked").length));
}

function addCommentsPage() {
	$("input[@name^='sendto1']").click(function(){checkSource("sendto1","ckallbox1");});
	$("input[@name^='sendto2']").click(function(){checkSource("sendto2","ckallbox2");});

}

function validateComment() {
	var valid = true;
	$("#commentmsg").removeClass("errorbox").nextAll().remove();
	if ($("#commentmsg").val() == 0) {
		$("#commentmsg").addClass("errorbox");
		valid = false;
	}
	$("#who").removeClass("errorbox");
	if (($("input[@name^='sendto1']:hidden").length == 0) && ($("input[@name^='sendto1']:checked").length == 0) && ($("input[@name^='sendto2']:checked").length == 0)) {
		$("#who").addClass("errorbox");
		valid = false;
	}
	return valid;
}

function checkAll() {
	$("input[@name^='sendto1']").attr('checked','checked');
	$("input[@name^='sendto2']").attr('checked','checked');
	$("#ckallbox1").attr('checked','checked');
	$("#ckallbox2").attr('checked','checked');
	$("#who").removeClass("errorbox");
}

function showaccount() {
	show1sthide2nd("account","xaccount");
	setcookie("leftpanel", "show");	
}

function hideaccount() {
	show1sthide2nd("xaccount", "account");
	setcookie("leftpanel", "hide");
}

// Recalls settings for the myhome page from cookies
function setleftpanel() {
	var showhide = getcookie("leftpanel");
	if (showhide === false || showhide == 'show') {
		showaccount();
	} else {
		hideaccount();
	}
	
	recallsetting('favs');
	recallsetting('reports');
	recallsetting('preferences');
}

function disablebutton(id) {
  var button = document.getElementById(id);
  button.disabled = true;
}

// AJAX Code
function doAjax(url, query, reqtype,callback,getxml,pageElement,callMessage) {
	var myreq = createRequest();
	myreq.onreadystatechange = function() {
		responseAJAX(pageElement,myreq,callback,getxml);
	};
	if (reqtype == 'post') {
		requestPost(url,query,myreq);
	} else {
		requestGet(url,query,myreq);
	}
}

function callAHAH(url, query, reqtype, pageElement, callMessage) {
	if (callMessage.length > 0) {
		document.getElementById(pageElement).innerHTML = callMessage;
	}
	var myreq = createRequest();
	myreq.onreadystatechange = function() {
		responseAHAH(pageElement,myreq);
	};
	if (reqtype == 'post') {
		requestPost(url,query,myreq);
	} else {
		requestGet(url,query,myreq);
	}
}

function responseAHAH(pageElement,req) {
	var output = '';
  if(req.readyState == 4) {
  	if(req.status == 200) {
    	output = req.responseText;
    	if (output != 'false') {
      	document.getElementById(pageElement).innerHTML = output;
      	/* $('#'+pageElement).remove();
      	stripeMe(); */
    	}
    }
  }
}

function responseAJAX(pageElement,req, callback,getxml) {
	if(req.readyState == 4) {
		if(req.status == 200) {
	 		var item = req.responseText;
			if (getxml==1) {
				item = req.responseXML;
			}
			doCallBack(callback,pageElement,item);
		}
	}
}

function createRequest() {
	try {
		req = new XMLHttpRequest(); /* e.g. Firefox */
	} catch(e) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
		} catch (e) {
			try {
		  	req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
		  } catch (e) {
		  	req = false;
		  } 
		} 
	}
	return req;
}

function requestPost(url, query, req) {
	req.open("POST",url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	req.send(query);
}

function requestGet(url, query, req) {
	var myRand = parseInt(Math.random()*99999999);
	req.open("GET",url+'?'+query+'&rand='+myRand,true);
	req.send(null);
}

function doCallBack(callback,pageElement,item) {
	eval(callback+'(pageElement,item)');
}

function InnnerHtml(pageElement,innerHtml) {
	if (innerHtml !== 'false') {
		document.getElementById(pageElement).innerHTML = innerHtml;
	}
}

function delAlert(event) {
	var $target = $(event.target);
	var name = $target.attr('name');
	var id = $target.attr('id');
	
	if (!name || name.substr(0,2) != 'su')
		return true;
	
	$target.attr('disabled','disabled');
	
	$.ajax({
   url: "/aindex.php",
   data: {page:"delalert",action:"delalert",submit:name},
   dataType: "json",
   type: "POST",
   success: function(data){
   	if (data.deleted == 1)
   	 {$('#'+data.rowid).remove();}
    if (data.hmore == 1)
     {$('#smore_alerts').empty();}
    if (data.newrow) {
    	$('#alerts').append(data.newrow);
    	$('#'+data.newrowid).click(function(event){return delAlert(event);});
    }
    stripeMe();
    if (data.empty == 1)
    	{$('#alertbox').remove();}
    return false;
   }
 });
 return false;
}

function setupAlerts() {
	$('#alerts input').click(function(event) {
		return delAlert(event);
		});
	}

function delComment(event) {
	var $target = $(event.target);
	var name = $target.attr('name');
	var id = $target.attr('id');
	
	$target.attr('disabled','disabled');
	
	$.ajax({
   url: "/aindex.php",
   data: {page:"delcomment",action:"delcomment",submit:name,dcr:id},
   dataType: "html",
   type: "POST",
   success: function(data){
   	if (data != 'false') {
   		$target.parent().parent().remove();
   	 	stripeMe();
   	 }
    return false;
   }
 });
 return false;
}

function senddup(event,callMessage) {
	var $target = $(event.target);
	$target.attr('disabled','disabled');
	
	if (callMessage.length > 0) {
		$('#message').html(callMessage);
	}
	
	$.ajax({
   url: "/aindex.php",
   data: {page:"senddup",action:"senddup"},
   dataType: "html",
   type: "GET",
   success: function(data){
   	if (data != 'false') {
     	$('#message').html(data);
   	}
   	return false;
   }
 });
 return false;
}

function addfav(event,callMessage) {
	var $target = $(event.target);
	var name = $target.attr('name');
	var id = $target.attr('id');

	if (!id || id.substr(0,2) != 'af')
		return true;

	$target.attr('disabled','disabled');
	var eventid = id.substr(2);
	
	if (callMessage.length > 0) {
		$('#message'+eventid).html(callMessage);
	}
	
	$.ajax({
   url: "/aindex.php",
   data: {page:"addfav",action:"addfav",task_id:eventid},
   dataType: "html",
   type: "POST",
   success: function(data){
   	if (data != 'false') {
     	$('#message'+eventid).html(data);
   	}
   	return false;
   }
 });
 return false;
}

function stripeMe() {
	$(".stripeMe tr").removeClass("alt");
	$(".stripeMe tr:even").addClass("alt");
	rowOver();
}

function rowOver() {
	$(".stripeMe tr").hover(function(){$(this).addClass("over");},function(){$(this).removeClass("over");});
}

function setfieldfocus(formid, field) {
	try {
	  form = document.getElementById(formid);
	  form[field].focus();
	} catch (e) {
	}
	
	//$('#'+formid+" input[name='"+field+"']").focus();
	//setTimeout("setFocusDelay(form,focus)", 100);
}

function setFocusDelay() {
  focusobj.focus();
}

// START OF FORM VALIDATION FUNCTION

// Get the key press
function getkey(e) {
	if (window.event){
		return window.event.keyCode;
	}
	else if (e){
		return e.which;
	}
	else{
		return null;
	}
}

// Check key depression against a set of valid keys
// Useful for numeric data entry
function goodchars(e, goods) {
	var key, keychar;
	key = getkey(e);
	if (key === null){
		return true;
	}

	// get character
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();

	// check goodkeys
	if (goods.indexOf(keychar) != -1) {
		return true;
	}
		
	// control keys
	if ( key===null || key===0 || key===8 || key===9 || key===13 || key===27 ) {
  	return true;
  }
	return false;
}

function Close() {
	top.close();
}

function requireFormField(formid, fieldname){
	var fieldobj = formObj(formid, fieldname);
	if(fieldobj.value === ''){
		fieldobj.focus();
		return false;
	}
	return true;
}

function changeRowColor(row, color){
	var rOb = fieldOb(row);
	rOb.bgColor = color;  
}

function addClass(target, classValue) {
	var pattern = new RegExp("(^| )" + classValue + "( |$)");
  if (!pattern.test(target.className)) {
    if (target.className === "") {
      target.className = classValue;
    }
    else {
      target.className += " " + classValue;
    }
  }
  target.className = classValue;
  return true;
}

function removeClass(target, classValue) {
  var removedClass = target.className;
  var pattern = new RegExp("(^| )" + classValue + "( |$)");
  removedClass = removedClass.replace(pattern, "$1");
  removedClass = removedClass.replace(/ $/, "");
  target.className = removedClass;
  return true;
}

function showJSElements() {
  $(".jses").css("display","inline");
  $(".jseh").css("display","none");
}

function clearfield(inputfield) {
	if (inputfield.value == 'mm/dd/yy') {
		inputfield.value = '';
	}
}

function ValidateFormAddFavorite(form){
	var errors = new Array();
	 
	removeNextSiblings("name");
	$("#name").removeClass("errorbox");
	if(form.name.value == '' && !errors['name']){
		$("#name").addClass("errorbox");
		$("#name").after("<b> Required</b>");
		errors['name'] = true;
	}
	
	removeNextSiblings("description");
	$("#description").removeClass("errorbox");
	if(form.description.value == '' && !errors['description']){
		$("#description").addClass("errorbox");
		$("#description").after("<b> Required</b>");
		errors['description'] = true;
	}
	
	if(errors['name']){
		form.name.focus();
		return false;
	}else if (errors['description']) {
		form.description.focus();
		return false;
	}
	return true;
}
