function ajax(option,div,value1,value2) 
{
	strOption = option;
	if (value1 != "") strOption = strOption + '~value1='+value1;
	if (value2 != "") strOption = strOption + '~value2='+value2;
	strURL = "http://www.indianpakistani.net/ajax.php";
	xmlhttpPost(strURL,strOption,div)
} 

function xmlhttpPost(strURL,strOption,div) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    self.xmlHttpReq.onreadystatechange = function() {
        if (self.xmlHttpReq.readyState == 4) {
            updatepage(self.xmlHttpReq.responseText,div);
        }
    }
    self.xmlHttpReq.send(strOption);
}
function updatepage(str,div){
    $(div).innerHTML = str;
}

function OpenWindow(theURL,winName,features)
{ 
	window.open(theURL,winName,features);
}

function LightWindow(url,title,lightboxwidth,lightboxheight,top,left) 
{
	myLightWindow.activateWindow({
		href: url,
		title : title,
		showImages : null,
		height : lightboxheight,
		width : lightboxwidth,
		top : top,
		left : left
	});
}

function FormCheck(formname)
{
	if (formname == "photoupload")
	{
		retval = true;
		error = "";
		if ($('fupload').value == "") 
		{
			error = error + "- Photo File Name must be Entered!\n";
		}
		if ($('photodescription').value == "") 
		{
			error = error + "- Photo Description must be Entered!\n";
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}
	if (formname == "reports")
	{
		retval = true;
		error = "";
		
		if ($('email'))
		{
			if ($('email').value == "") 
			{
				error = error + "- email address must be entered!\n";
			}
			else
			{
				if (validateEMAIL($('email').value)==false)
				{
					error = error + "- email address \""+$('email').value+"\" is invalid!\n";
				}
			}
		}	
		if ($('reason').value == "") 
		{
			error = error + "- you must enter the reason for reporting!\n";
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}
	if (formname == "reviews")
	{
		retval = true;
		error = "";
		
		if ($('md').value == "report") 
		{
			if ($('reportreason').value == "") 
			{
				error = error + "- you must enter the reason for reporting this review!\n";
			}
		}
		if ($('md').value == "reviews") 
		{
			min = 10;
			max = 400;
			reviewlen = $('review').value.length;
		
			if ($('yourratingcaption').value == "not rated yet") 
			{
				error = error + "- you must select your rating by using the rating stars!\n";
			}
			if ($('review').value == "") 
			{
				error = error + "- your review is missing!\n";
			}
			else
			{
				if (reviewlen < min )
				{	
					error = error + "- your review is too short (it is only "+reviewlen+" characters. It must be at least "+min+" characters!)\n";
				}
				else
				{
					if (reviewlen > max )
					{	
						error = error + "- your review is too long (it is "+reviewlen+" characters. It can only be "+max+" characters!)\n";
					}
				}
			}
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}
	if (formname == "signup")
	{
		retval = true;
		error = "";
		if ($('username').value == "") 
		{
			error = error + "- username must be entered!\n";
		}
		else
		{
			if ($('username').value.length < 6) 
			{
				error = error + "- username must be at least six letters/digits starting with an letter!\n";
			}
			else
			{
				string = $('username').value.substring(0, 1);
				var Pattern = /[A-Za-z]/;
				if (!Pattern.test(string))
				{
					error = error + "- username must start with an letter!\n";
				}
			}
		}
		if ($('password').value == "") 
		{
			error = error + "- password must be entered!\n";
		}
		else
		{
			if ($('password').value == $('username').value) 
			{
				error = error + "- your password cannot be same as your username!\n";
			}
			else
			{
				if ($('password').value.length < 4) 
				{
					error = error + "- your password must be at least four letters/digits!\n";
				}
				else
				{
					if ($('password').value != $('verifypassword').value) 
					{
						error = error + "- password and verify password do not match!\n";
					}
				}
			}	
		}
		if ($('question').value == "") 
		{
			error = error + "- security question must be entered!\n";
		}
		if ($('answer').value == "") 
		{
			error = error + "- security answer must be entered!\n";
		}
		if ($('firstname').value == "") 
		{
			error = error + "- first name must be entered!\n";
		}
		if ($('email').value == "") 
		{
			error = error + "- email address must be entered!\n";
		}
		else
		{
			if (validateEMAIL($('email').value)==false)
			{
				error = error + "- email address \""+$('email').value+"\" is invalid!\n";
			}
			else
			{
				if ($('email').value != $('verifyemail').value) 
				{
					error = error + "- email address and verify email address do not match!\n";
				}
			}
		}
		if ($('month').value == "") 
		{
			error = error + "- birth month must be entered!\n";
		}
		if ($('year').value == "") 
		{
			error = error + "- birth year must be entered!\n";
		}
		if ($('country').value == "") 
		{
			error = error + "- country must be selected!\n";
		}
		else
		{
			if ($('country').value == "USA") 
			{
				if ($('zip').value == "") 
				{
					error = error + "- zip code must be entered!\n";
				}
				else
				{
					if (validateZIP($('zip').value)==false)			
					{
						error = error + "- zip code \""+$('zip').value+"\" is invalid!\n";
					}
				}
			}	
			if ($('country').value == "Canada") 
			{
				if ($('state').value == "") 
				{
					error = error + "- state must be selected!\n";
				}
				if ($('city').value == "") 
				{
					error = error + "- city must be entered!\n";
				}
				if ($('postalcode').value == "") 
				{
					error = error + "- postal code must be entered!\n";
				}
				else
				{
					if (validateZIPCanada($('postalcode').value)==false)			
					{
						error = error + "- postal code \""+$('postalcode').value+"\" is invalid!\n";
					}
				}
			}	
			if ($('country').value != "USA" && $('country').value != "Canada") 
			{
				if ($('city').value == "") 
				{
					error = error + "- city must be entered!\n";
				}
			}	
		}	
		if ($('verificationcode').value == "") 
		{
			error = error + "- verification code must be entered!\n";
		}
		else
		{
			if ($('verificationcode').value != $('vcode').value) 
			{
				error = error + "- invalid verification code!\n";
			}
		}
		if (!$('agree').checked)  
		{
			error = error + "- your must read and agree to IndianPakistani.net terms of use agreement and privacy policy!\n";
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}

	if (formname == "loginresendverification")
	{
		retval = true;
		error = "";
		if ($('email').value == "") 
		{
			error = error + "email address must be entered!\n";
		}
		else
		{
			if (validateEMAIL($('email').value)==false)	    
			{
				error = error + "email address \""+$('email').value+"\" is invalid!\n";
			}
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}

	if (formname == "loginforgot")
	{
		retval = true;
		error = "";
		if ($('username').value == "" && $('email').value == "") 
		{
			error = error + "username or email address must be entered!\n";
		}
		if ($('username').value != "" && $('email').value != "") 
		{
			error = error + "both username and email Address cannot be entered!\n";
		}
		if ($('email').value != "") 
		{
			if (validateEMAIL($('email').value)==false)	    
			{
				error = error + "email address \""+$('email').value+"\" is invalid!\n";
			}
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}

	if (formname == "loginforgotemail")
	{
		retval = true;
		error = "";
		if ($('oldemail').value == "") 
		{
			error = error + "- old email address must be entered!\n";
		}
		else
		{
			if (validateEMAIL($('oldemail').value)==false)	    
			{
				error = error + "- old email address \""+$('oldemail').value+"\" is invalid!\n";
			}
		}
		if ($('newemail').value == "") 
		{
			error = error + "- new email address must be entered!\n";
		}
		else
		{
			if ($('oldemail').value != "" && $('oldemail').value == $('newemail').value) 
			{
				error = error + "- old email address and new email address cannot be same!\n";
			}
			else
			{
				if (validateEMAIL($('newemail').value)==false)	    
				{
					error = error + "- new email address \""+$('newemail').value+"\" is invalid!\n";
				}
				else
				{
					if ($('newemail').value != $('verifynewemail').value) 
					{
						error = error + "- new email address and verify new email address do not match!\n";
					}
				}
			}	
		}
		if ($('question').value == "") 
		{
			error = error + "- security question must be entered!\n";
		}
		if ($('answer').value == "") 
		{
			error = error + "- security answer must be entered!\n";
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}

	if (formname == "invite")
	{
		retval = true;
		error = "";
		if ($('fromemail').value == "") 
		{
			error = error + "- you must enter your email address!\n";
		}
		else
		{
			if (validateEMAIL($('fromemail').value)==false)	    
			{
				error = error + "- your email address \""+$('fromemail').value+"\" is invalid!\n";
			}
		
		}
		if ($('fromname').value == "") 
		{
			error = error + "- you must enter your name!\n";
		}
		
		if ($('sendto').value.trim() == "") 
		{
			error = error + "- you must enter at least one email address to send the invitation to!\n";
		}
		else
		{
			var tocount = 0;
			var sendtos = $('sendto').value.trim().split("\r\n");
			if (sendtos.length == 1)
			{
				tocount = 1;
				if (validateEMAIL($('sendto').value.trim())==false)	    
				{
					error = error + "- to: email address \""+$('sendto').value.trim()+"\" is invalid!\n";
				}
			}
			else
			{
				for (i = 0; i < sendtos.length; i++)
				{
					if (sendtos[i] != "")
					{
						if (validateEMAIL(sendtos[i])==false)
						{
							error = error + "- to: email address \""+sendtos[i]+"\" is invalid!\n";						
						}
						else
						{
							tocount = tocount + 1;
						}
					}
				}				
			}
			if (error == "" && tocount == 0)
			{
				error = error + "- no valid to: email address found!\n";						
			}
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}
	
	if (formname == "login")
	{
		retval = true;
		error = "";
		if ($('username').value == "") 
		{
			error = error + "Username must be entered!\n";
		}
		if ($('password').value == "") 
		{
			error = error + "Password must be entered!\n";
		}
		if (error != "") 
		{
			retval = false;
			alert(error);
		}
		return retval;
	}
	if (formname == "location")
	{
		retval = true;
		error = "";
		if ($('selection').value == "states") 
		{
			if ($('state').value == "") 
			{
				error = error + "State must be entered!\n";
			}
			if (error != "") 
			{
				retval = false;
				alert(error);
			}
			return retval;
		}
		if ($('selection').value == "zip") 
		{
			if ($('zip').value == "") 
			{
				error = error + "zip must be entered!\n";
			}
			else
			{
				if (validateZIP($('zip').value)==false)			
				{
					error = error + "invalid zip code!\n";
				}
			}
			if (error != "") 
			{
				retval = false;
				alert(error);
			}
			return retval;
		}
	}
}

function validateZIP(zipcode)
{
	var valid = "0123456789";
	if (zipcode.length!=5) return false;
	for (var i=0; i < zipcode.length; i++) {
		temp = "" + zipcode.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") return false;}
	return true;
}

function validateZIPCanada(string)
{
	if (string.length!=7) return false;
	var addressPattern = /[A-Za-z]\d[A-Za-z]\s\d[A-Za-z]\d/;
	return addressPattern.test(string);
}

function validateEMAIL(string)
{
	var addressPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	return addressPattern.test(string);
}

String.prototype.trim = function() 
{
	a = this.replace(/^\s+/, '');
	return a.replace(/\s+$/, '');
};


/*--------------------|
| ratings             |
|--------------------*/
function myrating(type,star,width,caption) 
{
	if (type == "click")
	{
		document.getElementById('div_myrating').innerHTML = '<li class=currentstars style=width:'+width+'%;>'+star+'</li>'; 
		document.getElementById('div_yourratingcaption').innerHTML = caption; 
		if ($('yourratingcaption')) $('yourratingcaption').value = caption;
		return false;
	}	
	if (type == "mouseover")
	{
		document.getElementById('div_yourratingcaption').innerHTML = caption; 
	}	
	if (type == "mouseout")
	{
		if ($('yourratingcaption')) document.getElementById('div_yourratingcaption').innerHTML = $('yourratingcaption').value; 
	}	
	if (type == "original")
	{
		if ($('yourratingcaption')) document.getElementById('div_yourratingcaption').innerHTML = $('originalratingcaption').value; 
	}	
}
/*--------------------|
| ratings             |
|--------------------*/


function charCounter(counter,textarea,maxchars)
{
	if ($(textarea) && $(textarea).value.length>=maxchars)
	{
		$(textarea).value = $(textarea).value.substring(0,maxchars);
	}
	$(counter).value = maxchars - $(textarea).value.length;
}	
function reviewReset(counter,textarea,maxchars)
{
	$(textarea).value = '';
	charCounter(counter,textarea,maxchars);
	myrating('click','0.0','0','not rated yet');
	$(textarea).focus();
}	
