// Copyright 2006 Swamiware LLC

function a_mover(w){window.status=w;return true;}
function a_mout(){window.status='';}

// common javaScript init.
// Should be called in ALL <body onload> events
function doInit()
{
	// set TIMEZONE
	setTZ();
}

//
function numbersOnly(evt)
{
	evt = (evt)?evt:event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0));
	if ( (charCode > 31) && (charCode < 48 || charCode > 57) )
		return false;
	else
		return true;
}

//
function OpenCVV()
{
	newWindow1 = open("payments/helpcvv.html","cvv","width=470,height=290,scrollbars=0,resizable=0,location=0");
}

//
function gotoBillShip()
{
//	window.location("checkout.aspx?step=2");
//	window.open('checkout.aspx?step=2','MoreSites','alwaysLowered=0,location=1,menubar=1,toolbar=1,personalbar=1,status=1,scrollbars=1,resizable=1')
}

function doShipOptionPost(formName)
{
	var form =  document.forms[formName];
	form.submit();
	return true;
}

var submitCount=0;

function disButtonPost(formName, buttonName)
{
	var form =  document.forms[formName];
	var but = form.elements[buttonName];
	
//	but.enabled = false;
//	but.readOnly = true;
//	but.status = true;
//	but.complete = true;

	if (submitCount == 0)
	{
		// validate params
		var zz
		
		// cc
		var ccnumber;
		ccnumber = form.elements["ccnumber"].value;
		zz = form.elements["ccnumber"];
		if (ccnumber.length > 19 || ccnumber.length == 0)
		{
			alert('Please a valid credit card number.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		else
			zz.className = "inpANC";
		
		// month
		var mm;
		mm = form.elements["lbExpMonth"].value;
		zz = form.elements["lbExpMonth"];
		if (mm.length == 0)
		{
			alert('Please enter the expiration month on your card.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		else
			zz.className = "inpANC";

		
		// year
		var yr;
		yr = form.elements["lbExpYear"].value;
		zz = form.elements["lbExpYear"];
		if (yr.length == 0)
		{
			alert('Please enter the expiration year on your card.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		else
			zz.className = "inpANC";

		// cvvcode
		var cvv;
		cvv = form.elements["cvvcode"].value;
		zz = form.elements["cvvcode"];
		if (cvv.length == 0)
		{
			alert('Please enter the CVV code on your card.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		else
			zz.className = "inpANC";
	
		submitCount++;
		but.value = "Processing...";
		form.submit();
	}
	else
	{
		alert("We are currently processing your payment...");
		return false; // form already submitte
	}
	return true;

}

// 
function doAddyPost(formName)
{ 
	var form =  document.forms[formName];
	
	// first name
	var fn;
	
	fn = form.elements["name"].value;
	zz = form.elements["name"];
	if (fn.length == 0)
	{
		alert('Please enter your Name.');
		zz.className = "inpNCBad";
		zz.focus();
		return false;
	}
	zz.className = "inpANC";
	
	// address1
	var addy1, addy2;
	
	addy1 = form.elements["address1"].value;
	addy2 = form.elements["address2"].value;
	zz = form.elements["address1"];
	if (addy1.length == 0)
	{
		if (addy2.length != 0)
		{
			form.elements["address1"].value = addy2;
			form.elements["address2"].value = "";
		}
		else
		{	
			alert('Please enter your Billing Address.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
	}
	zz.className = "inpANC";
	
	// city
	var city;
	
	city = form.elements["city"].value;
	zz = form.elements["city"];
	if (city.length == 0)
	{
		alert('Please enter your Billing City.');
		zz.className = "inpNCBad";
		zz.focus();
		return false;
	}
	zz.className = "inpANC";
	
	// state
	var state;
	
	state = form.elements["state"].value;
	zz = form.elements["state"];
	if (state.length == 0)
	{
		alert('Please enter your Billing State.');
		zz.className = "inpNCBad";
		zz.focus();
		return false;
	}
	zz.className = "inpANC";
	
	// zip
	var zip;
	
	zip = form.elements["zip"].value;
	zz = form.elements["zip"];
	if (zip.length == 0)
	{
		alert('Please enter your Billing Zip/Postal Code.');
		zz.className = "inpNCBad";
		zz.focus();
		return false;
	}
	zz.className = "inpANC";
	
	// phone
	var phone;
	
	phone = form.elements["phone"].value;
	zz = form.elements["phone"];
	if (phone.length == 0)
	{
		alert('Please enter your Phone number.');
		zz.className = "inpNCBad";
		zz.focus();
		return false;
	}
	zz.className = "inpANC";
	
	// email
	var email;
	
	email = form.elements["email"].value;
	zz = form.elements["email"];
	if (email.length == 0)
	{
		alert('Please enter your Email address.');
		zz.className = "inpNCBad";
		zz.focus();
		return false;
	}
	zz.className = "inpANC";
	
	// password
	var pw1, pw2;
	var zz1, zz2;
	
	pw1 = form.elements["pass1"].value;
	pw2 = form.elements["pass2"].value;
	zz1 = form.elements["pass1"];
	zz2 = form.elements["pass2"];
	
	zz1.className = "inpANC";
	zz2.className = "inpANC";
	
	if (pw1.length > 0)
	{	
		if (pw1.length < 3)
		{
			alert('Your Password is too short. Please enter between 3-20 characters');
			zz1.className = "inpNCBad";
			zz1.focus();
			return false;
		}
		
		if (pw1.length > 20)
		{
			alert('Your Password is too long. Please enter between 3-20 characters');
			zz1.className = "inpNCBad";
			zz1.focus();
			return false;
		}
		
		if (pw1 != pw2)
		{
			alert('Your Password and Re-Typed Password do not match. Please re-enter.');
			
			zz1.value = '';
			zz2.value = '';
			
			zz1.className = "inpNCBad";
			zz2.className = "inpNCBad";
			zz1.focus();
			return false;
		}
	}
	else
	{
		// no password entered
		alert('Please enter a password of 3-20 characters.');
		zz1.className = "inpNCBad";
		zz1.value = '';
		zz2.value = '';
		zz1.focus();
		return false;
	}
	
	
	// checkbox ship is same as bill
	var checksame;
	
	checksame = form.elements["shipsameasbill"];
	
	
	if (checksame.checked == false)
	{
		//
		// ship to billing address is not checked
	
		// first name 
		fn = form.elements["shipname"].value;
		zz = form.elements["shipname"];
		if (fn.length == 0)
		{
			alert('Please enter your Ship to Name.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		zz.className = "inpANC";
		
		// address1
		addy1 = form.elements["saddress1"].value;
		addy2 = form.elements["saddress2"].value;
		zz = form.elements["saddress1"];
		if (addy1.length == 0)
		{
			if (addy2.length != 0)
			{
				form.elements["saddress1"].value = addy2;
				form.elements["saddress2"].value = "";
			}
			else
			{	
				alert('Please enter your Shipping Address.');
				zz.className = "inpNCBad";
				zz.focus();
				return false;
			}
		}
		zz.className = "inpANC";
		
		// city
		city = form.elements["scity"].value;
		zz = form.elements["scity"];
		if (city.length == 0)
		{
			alert('Please enter your Shipping City.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		zz.className = "inpANC";
		
		// state
		state = form.elements["sstate"].value;
		zz = form.elements["sstate"];
		if (state.length == 0)
		{
			alert('Please enter your Shipping State.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		zz.className = "inpANC";
		
		// zip
		zip = form.elements["szip"].value;
		zz = form.elements["szip"];
		if (zip.length == 0)
		{
			alert('Please enter your Shipping Zip/Postal Code.');
			zz.className = "inpNCBad";
			zz.focus();
			return false;
		}
		zz.className = "inpANC";
		
		
	}

	
	form.submit();
	return true;
}

//
function doSSPost(formName)
{
	var form =  document.forms[formName];

	var url = form.elements["url"].value;
	
	if (url.length < 8)
	{
		alert('Please enter a Link');
		form.elements["url"].focus();
		return false;
	}
	
	if (url.length > 500)
	{
		alert('Your Link is too long! 500 characters is the limit, yours is: '+url.length);
		form.elements["url"].focus();
		return false;
	}
	
	// category
	var cat;
	cat = form.elements["category"]
	
	if (cat.value == "")
	{
		alert('Please Select a Category');
		form.elements["category"].focus();
		return false;
	}
	
	var headline = form.elements["headline"].value;
	
	if (headline.length < 5)
	{
		alert('Your Headline is too short.');
		form.elements["headline"].focus();
		return false;
	
	}
	else
	if (headline.length > 50)
	{
		alert('Your Headline is too long.');
		form.elements["headline"].focus();
		return false;
	}

	var description = form.elements["description"].value;
	
	if (description.length < 5)
	{
		alert('Your Description is too short.');
		form.elements["description"].focus();
		return false;
	
	}
	else
	if (description.length > 400)
	{
		alert('Your description is too long. 400 characters max, you typed '+description.length);
		form.elements["description"].focus();
		return false;
	}

	
	form.submit();
	return true;
}

//
function doTAPost(formName)
{
	var form =  document.forms[formName];

	// check headline
	var hl;
	hl = form.elements["headline"].value;
	if (hl.length < 3 || hl.length > 120)
	{
		alert('Please enter a Headline between 3-120 characters');
		form.elements["headline"].focus();
		return false;
	}

	// link
	var link;
	link = form.elements["link"].value;

	if (link.length < 8 || link.length > 120)
	{
		alert('Please enter your Link between 1-120 characters');
		form.elements["link"].focus();
		return false;
	}
	
	// category
	var cat;
	cat = form.elements["cat"]
	
	if (cat.value == "")
	{
		alert('Please Select a Category');
		form.elements["cat"].focus();
		return false;
	}

	// ppemail
//	var pp;
//	pp = form.elements["ppemail"].value;
//
//	if (pp.length == 0)
//	{
//		alert('Please enter your PayPal e-mail.');
//		form.elements["ppemail"].focus();
//		return false;
//	}
			
	form.submit();
	return true;
}

// 
function doSIPost(formName)
{ 
	var form =  document.forms[formName];
	
	// check user name
	var un;
	un = form.elements["uname"].value;
	if (un.length < 3)
	{
		alert('Please enter a User Name between 3-30 characters');
		form.elements["uname"].focus();
		return false;
	}

	// password
	var pw1;
	pw1 = form.elements["pw1"].value;
	
	if (pw1.length < 3)
	{
		alert('Your Password is too short. Please enter between 3-30 characters');
		form.elements["pw1"].focus();
		return false;
	}
	
	if (pw1.length > 30)
	{
		alert('Your Password is too long. Please enter between 3-30 characters');
		form.elements["pw1"].focus();
		return false;
	}
	
	form.submit();
	return true;
}

// 
function doSUPost(formName)
{ 
	var form =  document.forms[formName];

	// check for legal email address
	
	// check user name
	var un;
	un = form.elements["uname"].value;
	if (un.length < 3)
	{
		alert('Please enter a User Name between 3-30 characters');
		form.elements["uname"].focus();
		return false;
	}

	// check email
	var em1;
	em1 = form.elements["email1"].value;
	if (em1.length < 3)
	{
		alert('Please enter your E-mail address.');
		form.elements["email1"].focus();
		return false;
	}

	// password
	var pw1;
	pw1 = form.elements["pw1"].value;
	
	if (pw1.length < 3)
	{
		alert('Your Password is too short. Please enter between 3-30 characters');
		form.elements["pw1"].focus();
		return false;
	}
	
	if (pw1.length > 30)
	{
		alert('Your Password is too long. Please enter between 3-30 characters');
		form.elements["pw1"].focus();
		return false;
	}

	form.submit();
	return true;
}


// new thread post
function doNTPost(formName, isPreview)
{ 
	var form =  document.forms[formName];
	var t;
	var b;

	t = form.elements["title"].value;
	b = form.elements["reply"].value;

	// check for title minimum length
	if (t.length < 3)
	{
		alert('Your title must be at least 3 letters long. Try again.');
		form.elements["title"].focus();
		return false;
	}

	// check for message minimum length
	if (b.length < 3)
	{
		alert('Your message must be at least 3 letters long. Try again.');
		form.elements["reply"].focus();
		return false;
	}

	if (isPreview == '1')
	{
		form.elements["preview"].value = 1;
	}

	form.submit();
	return true;
}


// new reply to post
function doNRPost(formName, isPreview)
{ 
	var form =  document.forms[formName];
	var b;

	b = form.elements["reply"].value;

	if (b.length < 3)
	{
		alert('Your message must be at least 3 letters long. Try again.');
		form.elements["reply"].focus();
		return false;
	}

	if (isPreview == '1')
	{
		form.elements["preview"].value = 1;
	}

	form.submit();
	return true;
}

// new reply to post
function doDelPost(formName)
{ 
	var form =  document.forms[formName];

	var bRet = confirm('Are you sure you want to delete your post?');
	if (bRet)
	{
		form.elements["delPost"].value = 1;
		form.submit();
		return true;
	}
	
	return false;
}

function SetCookie (name,value,expires,path,domain,secure)
{
	document.cookie = name + "=" + escape (value) + ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}

function setTZ()
{
	var d = new Date();	 // today's date	
	var e = new Date(2010,5,1);
	if (d.getTimezoneOffset)
	{
		SetCookie ("tzOffset", d.getTimezoneOffset(), e, "/"); // this is the new timeZone cookie we'll use from now on.
	}
	return true;
}
function setClass(target, style)
{
	if (document.body && document.body.style && document.all)
		target.setAttribute("className", style);	
	else
		target.setAttribute("class", style);
}
// Marks a story as READ by changing its CSS
// evt comes from a <a> tag.
function doMarkAsRead(evt)
{
	var evt = (evt) ? evt : window.event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	setClass(target, "titc");
}
// create a xmlHttp object to communicate with server
// returns false upon failure
function getXMLHttpObject()
{
	var xmlhttp = false;
	try
	{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	 catch (e)
	{
		try
		{
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}
	// return the new object (0=failed)
	return(xmlhttp);
}
// send a VOTE request to server
function doVoteSend(story, code)
{
	var elem;
	var url="/phoonso/vote.aspx?story=" + story + "&p=" + code;
	// create our xmlHttp object to communicate with server.	
	var x = getXMLHttpObject();
  	x.open("GET", url, true);
	x.onreadystatechange = function()
							{
								if (x.readyState == 4)
								{
									// is return code 'Okay'?
									if (x.status == 200)
									{
										// get response (is the new number of votes on this story)
										var response = x.responseText;
										switch (response)
										{
										case "-1": // invalid story
											// silent error
											break;
										case "-2": // invalid vote (already voted)
											// silent error
											break;
										case "-3": // not logged in
											location.href = "/phoonso/signin.aspx?url="+location.href;
											break;
										default:
											elem = document.getElementById("td"+story);
											if (elem)
												elem.innerHTML = 1+(elem.innerHTML*1);
											
											elem = document.getElementById("img"+story);
											if (elem)
											{
												elem.onclick = null;
												elem.onmouseover = null;
												elem.onmouseout = null;
												elem.src = "/phoonso/i/voted.gif";												
											}
											break;
										}
									}
									delete (x);
								}
							}
	// send vote data to server (asynchronously)
	x.send(null);
}
// an <img> tag triggers an event to this function (onmouseover... etc)
// It allows you to change the image of this <img> tag.
function setImage(evt, src)
{
	var evt = (evt) ? evt : window.event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	target.src = src;
}


function doUsersOnline()
{
	var elem = document.getElementById("idUsersOnline");
	if (elem)
	{
		var url="/phoonso/usersOnline_req.aspx";	
		var x = getXMLHttpObject();
  		x.open("GET", url, true);
		x.onreadystatechange = function()
								{
									if (x.readyState == 4)
									{
										// is return code 'Okay'?
										if (x.status == 200)
										{
											// get response (it is the number of users online
											elem.innerHTML = x.responseText;
										}
										// set a timeout to fetch data again from server in 60 seconds
										window.setTimeout("doUsersOnline()", 60*1000);
										delete (x);
									}
								}
		// send vote data to server (asynchronously)
		x.send(null);
		
	}
}

function getEventCoords(evt)
{
	var coords = {left:0, top:0};
	if (evt.pageX || evt.pageY)
	{
		coords.left = evt.pageX;
		coords.top = evt.pageY;
	}
	else if (evt.clientX || evt.clientY)
	{
		coords.left = evt.clientX + document.body.scrollLeft - document.body.clientLeft;
		coords.top = evt.clientY + document.body.scrollTop - document.body.clientTop;
		if (document.body.parentElement && document.body.parentElement.clientLeft)
		{
			var bodParent = document.body.parentElement;
			coords.left += bodParent.scrollLeft + bodParent.clientLeft;
			coords.top += bodParent.scrollTop + bodParent.clientTop;
		}
	}
	return coords;
}

// displays an overlay
var gOverlay=null;
function showOverlay(evt, data)
{
	var evt = (evt) ? evt : window.event;
	var target = (evt.target) ? evt.target : evt.srcElement;
	var coord = getEventCoords(evt);
		
	if (gOverlay == null)
	{
		gOverlay = document.createElement("span");
		setClass(gOverlay, "overlay");
		document.forms[0].appendChild(gOverlay);
	}
	gOverlay.style.visibility = "visible";
	gOverlay.style.left = coord.left+10;
	gOverlay.style.top = coord.top;
//pat 5/12/06	gOverlay.innerHTML = "<table><tr><td class='overlay'>" + data + "</td></tr></table>";
	gOverlay.innerHTML = "" + data + "";
}
function hideOverlay()
{
	gOverlay.style.visibility = "hidden";
}

