// JavaScript Document
function ltrim(s)
{
return s.replace(/^\s*/,"");
}
function rtrim(s)
{
return s.replace(/\s*$/,"");
}
function trim(s)
{
return rtrim(ltrim(s));
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function checkInternationalPhonenum(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
function Chk_Numeric(obj_nam,pos)    //Please Enter a Valid Product Price
 {
	 var x=document.getElementById(obj_nam).value; 
	 if(pos==1)//for first_name,last_name validation,city
	 {
		 var invalids = "`~@#$%^&*()_-+=\|{}[]:;'\"<>,.?/";
		 for(i=0; i<invalids.length; i++) 
		 {    
			if(x.indexOf(invalids.charAt(i)) >= 0 || x==false)
			{
				return false;
			}
		 }
	 }
	 if(pos==2) //for comments validation
	 {
	 	var invalids = "`~#%^&*()-+=\|{}[]:;'\"<>?/ ";
		 for(i=0; i<invalids.length; i++) 
		 {    
			if(x.indexOf(invalids.charAt(i)) >= 0 || x==false)
			{
				return false;
			}
		 }
	 }
	 if(pos==3)//for company name validation
	 {
	 	var invalids = "`~#$%^&*()_-+=\|{}[]:;'\"<>?/,";
		 for(i=0; i<invalids.length; i++) 
		 {    
			if(x.indexOf(invalids.charAt(i)) >= 0 || x==false)
			{
				return false;
			}
		 }
	 }
	 if(pos==4) //Address validation
	 {
	 	var invalids = "`~^*|<>?";
		for(i=0; i<invalids.length; i++) 
		 {    
			if(x.indexOf(invalids.charAt(i)) >= 0 || x==false)
			{
				return false;
			}
		 }
	 }
	if(pos==5) //integer validation
	 {
	 	var invalids = "+-";
		for(i=0; i<invalids.length; i++) 
		 {    
			if(x.indexOf(invalids.charAt(i)) >= 0 || x==false)
			{
				return false;
			}
		 }
	 }
	if(pos==6) //Name validation
	 {
		var fureg = /^([A-Za-z])+$/;
		var fchar;
		for(i=0; i<x.length; i++) 
		{ 
			fchar = x.charAt(i);
			if(fureg.test(fchar) == false)
			{
				return false;
			}
		}
	 }
	 return true;
 }

// Function to check wether email contains 2 chars after @ symbol and 2 chars after . symbol
function checkEmailFormat(email) {
	var myFirstArray = email.split('@');
	var mySecondArray = myFirstArray[1].split('.');
	if(mySecondArray[0].length >= 2 && mySecondArray[1].length >= 2)
	{
		return true;
	}
	return false;
}

function checkEmail(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var reg1 = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-])+\.([A-Za-z]{2,4})+\.([A-Za-z]{2,4})+\.([A-Za-z]{2,4})$/;
   if(reg1.test(email) == true) {
      return false;
   }
   if(reg.test(email) == false) {
      return false;
   }
else
{
return checkEmailFormat(email);
//return true;
}
}
function contactusvalidation()
{
var mErrStr = "";
var mFieldName = "";
var d = document.contactus;
	if(trim(d.name.value) == "")
	{
		mErrStr +="Name \n";
		if(mFieldName == "")
			mFieldName = "name";
	}
	else if(Chk_Numeric('name',6)==false)
	{
		mErrStr +="Valid Name\n";
		if(mFieldName == "")
			mFieldName="name";
	}
	if(trim(d.domain.value) == "")
	{
		mErrStr +="Domain \n";
		if(mFieldName == "")
			mFieldName = "domain";
	}
	if(trim(d.email.value) == "")
	{
		mErrStr +="Email Address \n";
		if(mFieldName == "")
			mFieldName = "email";
	}
	if(d.email.value)
	{
		if (checkEmail(d.email.value)==false)
		{
			mErrStr +="Valid Email Address \n";
			mFieldName = "email";
		}
	} 
	if(trim(d.phone.value) == "")
	{
		mErrStr +="Phone \n";
		if(mFieldName == "")
			mFieldName = "phone";
	}
/*	else if(Chk_Numeric('phone',6)==false)
	{
		mErrStr +="Valid Phone Number\n";
		if(mFieldName == "")
			mFieldName="phone";
	}
*/	
/*if(trim(d.phone.value)!='')
	{
		var phones = String(d.phone.value);
		if(isNaN(d.phone.value) || phones.length < 10)
		{ 
			mErrStr +="Valid Phone Number \n";
			if(mFieldName == "")
				mFieldName="phone1";
		}
	}
*/	else if(checkInternationalPhonenum(d.phone.value)==false)
	{
			mErrStr +="Valid Phone Number \n";
			if(mFieldName == "")
				mFieldName="phone";
	}
	if(trim(d.contactmessage.value) == "")
	{
		mErrStr +="Message \n";
		if(mFieldName == "")
			mFieldName = "contactmessage";
	}
	if(trim(d.accesscode.value) == "")
	{
		mErrStr +="Accesscode \n";
		if(mFieldName == "")
			mFieldName = "accesscode";
	}	
	if (mErrStr != "")
	{
		alert("Following are the required fields:- \n\n"+mErrStr);
		for (i=0;i<d.elements.length;i++)
		{
		if (d.elements[i].name == mFieldName)
			d.elements[i].focus();
		}
		return false;
	} 
return true;
}
function seovalidation()
{
var mErrStr = "";
var mFieldName = "";
var d = document.freeseoevaluation;
	if(trim(d.name.value) == "")
	{
		mErrStr +="Name \n";
		if(mFieldName == "")
			mFieldName = "name";
	}
	else if(Chk_Numeric('name',6)==false)
	{
		mErrStr +="Valid Name\n";
		if(mFieldName == "")
			mFieldName="name";
	}
	if(trim(d.domain.value) == "")
	{
		mErrStr +="Domain \n";
		if(mFieldName == "")
			mFieldName = "domain";
	}
	if(trim(d.email.value) == "")
	{
		mErrStr +="Email Address \n";
		if(mFieldName == "")
			mFieldName = "email";
	}
	if(d.email.value)
	{
		if (checkEmail(d.email.value)==false)
		{
			mErrStr +="Valid Email Address \n";
			mFieldName = "email";
		}
	} 
	if(trim(d.phone.value) == "")
	{
		mErrStr +="Phone \n";
		if(mFieldName == "")
			mFieldName = "phone";
	}
	else if(checkInternationalPhonenum(d.phone.value)==false)
	{
			mErrStr +="Valid Phone Number \n";
			if(mFieldName == "")
				mFieldName="phone1";
	}
	if (mErrStr != "")
	{
		alert("Following are the required fields:- \n\n"+mErrStr);
		for (i=0;i<d.elements.length;i++)
		{
		if (d.elements[i].name == mFieldName)
			d.elements[i].focus();
		}
		return false;
	} 
return true;
}
function newslettervalidation()
{
var d = document.newslettersignup;
	if(trim(d.newsletter_email.value) == "")
	{
		alert("Please enter email address");
		d.newsletter_email.focus();
		return false;
	}
	if(d.newsletter_email.value)
	{
		if (checkEmail(d.newsletter_email.value)==false)
		{
			alert("Enter valid Email Address");
			d.newsletter_email.focus();
			return false;
		}
	} 
	return true;
}