var time = 3000;
var numofitems = 5;

//menu constructor
function menu(allitems,thisitem,startstate){ 
   callname= "gl"+thisitem;
   divname="subglobal"+thisitem;  
   this.numberofmenuitems = allitems;
   this.caller = document.getElementById(callname);
   this.thediv = document.getElementById(divname);
   this.thediv.style.visibility = startstate;
}

//menu methods
function ehandler(event,theobj){
   for (var i=1; i<= theobj.numberofmenuitems; i++){
      var shutdiv =eval( "menuitem"+i+".thediv");
      shutdiv.style.visibility="hidden";
   }
   theobj.thediv.style.visibility="visible";
}

function closesubnav(event){
   if ((event.clientY <48)||(event.clientY > 107)){
      for (var i=1; i<= numofitems; i++){
         var shutdiv =eval('menuitem'+i+'.thediv');
         shutdiv.style.visibility='hidden';
      }
   }
}

function fnfinalSubmit() {
	document.search1.method ="get";
	document.search1.action ="quote.php";				
	document.search1.submit();
}

function textCounter(field, maxlimit) {
	if (field.value.length > maxlimit) 
	field.value = field.value.substring(0, maxlimit);
}

function fnDisableOtherState() {
	if(document.request_quote.cmbState.value=="0") {
		document.request_quote.txtstate1.disabled=false;
    document.request_quote.txtstate1.style.background = "#FFFFFF";
	} else {
		document.request_quote.txtstate1.disabled=true;
		document.request_quote.txtstate1.value="";
		document.request_quote.txtstate1.style.background = "#C0C0C0";
	}
}

function fnformSubmit() {
	if(StrTrim(document.request_quote.txtFirstName.value) == "") {
		alert("Please enter the Name.");
		document.request_quote.txtFirstName.focus();
		return false;
	}

	if(validText(document.request_quote.txtFirstName.value)) {
		alert("Name has to be text only.");
		document.request_quote.txtFirstName.focus();
		return false;
	}

	if(isInteger(document.request_quote.txtFirstName.value)) {
		alert("Name cannot have numerics.");
		document.request_quote.txtFirstName.focus();
		return false;
	}

	if(StrTrim(document.request_quote.txtEmail.value) == "") {
		alert("Please enter the E-mail Address.");
		document.request_quote.txtEmail.focus();
		return false;
	}

	if (!(fnemailCheck(document.request_quote.txtEmail.value))) {
		alert("Please enter a valid E-mail Address.");									
		document.request_quote.txtEmail.focus();
		return false;
	}
	
	if(!StrTrim(document.request_quote.tel1.value) == "") {
		if(isNaN(document.request_quote.tel1.value)) {
			alert("Please enter an integer value.");
			document.request_quote.tel1.focus();
			return false;
		}
	} else {
		alert("Please enter your Telephone Number.");
		document.request_quote.tel1.focus();
		return false;
	}
	
	if(!StrTrim(document.request_quote.tel2.value) == "") {
		if(isNaN(document.request_quote.tel2.value)) {
			alert("Please enter an integer value.");
			document.request_quote.tel2.focus();
			return false;
		}
	} else {
		alert("Please enter your Telephone Number.");
		document.request_quote.tel2.focus();
		return false;
	}

	if(!StrTrim(document.request_quote.tel3.value) == "") {
		if(isNaN(document.request_quote.tel3.value)) {
			alert("Please enter an integer value.");
			document.request_quote.tel3.focus();
			return false;
		}
	} else {
		alert("Please enter your Telephone Number.");
		document.request_quote.tel3.focus();
		return false;
	}
	
	if(document.request_quote.cmbcountry.value=="0") {
		alert("Please select your Country.");
		document.request_quote.cmbcountry.focus();
		return false;
	}
		
	if(fnValidText(document.request_quote.txtURL.value)) {
		alert("Website URL should not contain following characters: \n                            ' < > \" ");
		document.request_quote.txtURL.focus();
		return false;
	}
	
	if(document.request_quote.cmbprotype.value=="0") {
		alert("Please select the Type of Project.");
		document.request_quote.cmbprotype.focus();
		return false;
	}	

	if(document.request_quote.cboProjectBudget.value=="0") {
		alert("Please select the Estimated Budget for the project.");
		document.request_quote.cboProjectBudget.focus();
		return false;
	}
		
	if(fnValidText(document.request_quote.txtProjectDesc.value)) {
		alert("Project Description should not contain following characters: \n                            ' < > \" ");
		document.request_quote.txtProjectDesc.focus();
		return false;
	}
				
	return true;
}

function fnfinalSubmit() {
	if(fnformSubmit()) {
		document.request_quote.method ="post";
		document.request_quote.action ="quote.php";				
		document.request_quote.submit();
	}
}

function isInteger(s) {
	var i;
	if(s.length>0) {
		for (i = 0; i < s.length; i++) {
			// Check that current character is number.
			var c = s.charAt(i);
			if (!isDigit(c)) {
				return false;
			}
		}
		// All characters are numbers.
		return true;
	} else {
		return false;
	}
}

// Returns true if character c is a digit
// (0 .. 9).
function isDigit(c) {
  return ((c >= "0") && (c <= "9"))
}

function ExistWhiteSpace(str) {
	for (var i=0;i<str.length;i++) {
		if 	(str.charAt(i) == " ") {
			return false;
			break;
		}
	}
	return true;
}

function isNumeric(StrChkVal) {
	RetVal = true
  NumberOfPoints = 0
	for (i = 0 ; i < StrChkVal.length ; i++) {
    if (mid(StrChkVal, i + 1, 1) == ".") {
      if (NumberOfPoints == 0) {
        NumberOfPoints = 1
      } else {
        RetVal = false
      }
    } else {
      if (isNaN(parseInt(mid(StrChkVal, i + 1, 1), 10))) {
        RetVal = false
      }
    }
	}
	return RetVal
}

function StrTrim(StrVar) {
// ***** Function to trim a string sent and return the resultant string ***
	for (I = 0 ; I < StrVar.length ; I++) {
		if ((StrVar.substring(0,1)) == " ") {
			StrVar = StrVar.substring(1,StrVar.length)
			I = I - 1
		}
	}

	for (I = 0 ; I < StrVar.length ; I++) {
		if ((StrVar.substring(StrVar.length - 1,StrVar.length - 0)) == " ") {
			StrVar = StrVar.substring(0,StrVar.length - 1)
			I = I - 1
		}
	}
	return StrVar
}

function mid(str,start,n) {
	//returns a substring of str starting at 'start' that's n characters long.
	strlen = str.length
	var jj = str.substring(start-1,strlen)
	jj = jj.substring(0,n)
	return jj
}

function SelTheOption(SelName, OptionValue) {
	OptLen = eval("document.Catelog." + SelName + ".length")
	for (i = 0 ; i < OptLen; i++)
	{
		OptSel = eval("document.forms[0]." + SelName + ".options[i].value")
		if (OptSel == OptionValue)
		{
			eval("document.forms[0]." + SelName + ".options[i].selected=true")
			eval("document.forms[0]." + SelName + ".options[i].defaultSelected=true")
			break
		}
	}
}


function mid(str,start,n)
{	//returns a substring of str starting at 'start' that's n characters long.
	strlen = str.length
	var jj = str.substring(start-1,strlen)
	jj = jj.substring(0,n)
	return jj
}

function Checkdate(datestr)
{
	flag = false
	if ((datestr.length >= 6) && (datestr.length <= 10))
	{
		firstsl = datestr.indexOf("/")
		secondsl = datestr.indexOf("/", firstsl + 1)
        var mm = (mid(datestr, firstsl + 2, secondsl - (firstsl + 1))).valueOf()
        var dd = (mid(datestr, 1 , firstsl)).valueOf()
        var yy = (mid(datestr, secondsl + 2, datestr.length - secondsl)).valueOf()

		if ((firstsl != -1) && (secondsl != -1))
		 {

			if ((firstsl == 2) || (firstsl == 1))
		   	{

				if ((secondsl == 4) || (secondsl == 5) || (secondsl ==3) && ((secondsl - firstsl) > 1))
				{

				 	if (((datestr.length - secondsl) == 3) || ((datestr.length - secondsl) == 5))
					{

                        if (!(isNumeric(mm) && isNumeric(dd) && isNumeric(yy)))
                        {
                          return flag
                        }
                        else
                        {
                            if (parseInt(mm, 10) < 1 || parseInt(mm, 10) > 12)
                            {
                                mm = Number.NaN
                                return flag
                            }
                            if (parseInt(dd, 10) < 1 || (parseInt(dd, 10) > getDays((parseInt(mm, 10) - 1 ),parseInt(yy, 10))))
                            {
                                dd = Number.NaN
                                return flag
                            }
                            flag = true
                            return flag
                        }
                    }
                }
		 	}
		}
	}

	return flag
}


function CheckNumber(intNum)
{


	var valid="0123456789";
	var string=intNum;
	var leng=string.length;
	for (var i=0;i<=leng ;i++)
	{
		var substring=string.substr(i,1);
		if (valid.indexOf(substring)== -1)
			return false;
	}
	return true;
}

function roundIt(a)
{
	aa=a.toString()
	b = aa.indexOf('.');
	if (b != -1)
		ret=aa.substring(0, b+3);
	else
		ret=a;

	return parseFloat(ret)
}

function EnCode(s)
{
	t=""
	for(i=0; i<s.length;++i){
		ch=s.charAt(i)
		switch(ch)
		{
			case "\n" : t+=""; break;
			case "\r" : t+=""; break;
			case "\t" : t+=""; break;
			case "\b" : alert("enter") ;
				t+=""; break;
		  default : t+=ch; break;
		}
	}
	return t
}

function fnemailCheck1(x)
{
	var count=0;
	var validmail="`~!#$%^&*()+=|\}]{[;:'<,>/?"
	var dou='"'
	var	EmailError=0;
	var EmailValue=x;

	var lenx  = x.length;

	if ((mid(x,1,1) == " " )||(isNumeric(mid(x,1,1)))||(mid(x,1,1) == "-")||(mid(x,1,1) == "@" ))
		EmailError=1;

	//To check i fthe email contains more that one @
	for (i=1;i<=lenx;i++)
	{
		if (mid(x,i,1) == "@" )
			count++;
	
		//To check for space
		if (mid(x,i,1)== " ")
			EmailError = 1;
	}

	if (count>1 )
		EmailError=1;

	if (mid(x,lenx,1)==".")
		EmailError = 1;

	L1=validmail.length;

	for (i=0; i<L1;i++)
	{
		aa=mid(validmail, i ,1);
		a2=EmailValue.indexOf(aa)

		if (EmailValue.indexOf(aa) != -1)
			EmailError=1;
	}

	if (EmailValue.indexOf(dou) != -1)
		EmailError=1;

	if(EmailValue == "")
		EmailError=1;
	else if (EmailValue.indexOf("@")<1)
		EmailError=1;
	else if (((EmailValue.indexOf("."))-(EmailValue.indexOf("@")))<3)
		EmailError=1;
	
	return EmailError;
}

function validText(x){
	var validmail="@`~!#$%^&*()+=|\}]{[;:'<,>/?-"
	var dou='"'
	var	EmailError=0;
	var EmailValue=x;

	L1=validmail.length;

	for (i=0; i<L1;i++)
	{
		aa=mid(validmail, i ,1);
		a2=EmailValue.indexOf(aa)
		if (EmailValue.indexOf(aa) != -1){
		EmailError=1;
		}
	}

	return EmailError;
}

function fnValidText(x)
{
	var invalid = "'<>"
	var text = x;
	L1 = invalid.length;
	dou='"';
	var Error=0;
	for (i=0; i<=L1;i++)
	{
		aa=mid(invalid, i ,1);
		a2=text.indexOf(aa)

		if (text.indexOf(aa) != -1)
		{
		Error=1;
		}
	}	

        if (text.indexOf(dou) != -1)
		{
		Error=1;
		}

	return Error;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function warnInvalid (theField, s)
{   theField.focus();
    theField.select();
    alert(s);
    return false;
}


function fnemailCheck(l_EmailId)
{


var validmail="`~!#$%^&*()+=|\\}]{[;:'<,>/?/"
var dou='"'
var	EmailError=0;


	if (trim(l_EmailId) == "-" || (trim(l_EmailId) == "") )
	{
		return false;
	}
	else
	{
		var index, dotIndex, sKana, kanaIndex;
		var L1=0;
		var i,a2,aa
		var lenx  = l_EmailId.length;

			//To check for the first occurrence of .
			if(mid(l_EmailId,1,1) == "." )
				return false;


			for (i=1;i<=lenx;i++){
				//To check for space
				if (mid(l_EmailId,i,1)== " "){
					return false;
				}
			}

        	L1=validmail.length;

			for (i=0; i<L1;i++)
			{
				aa=mid(validmail, i ,1);

				a2=l_EmailId.indexOf(aa)

				if (l_EmailId.indexOf(aa) != -1)
				{
					return false;
				}
			}
			//Check for double quotes
			if (l_EmailId.indexOf(dou) != -1)
			{
				return false;
			}


		index = l_EmailId.indexOf("@");
		if (index < 0 || index == 0)
			return false;
		if (index < l_EmailId.indexOf("@", index+1))
			return false;

		dotIndex = l_EmailId.indexOf(".", index);

		if (dotIndex < 0)
			return false ;
		if ((index + 1) == dotIndex)
			return false ;
		if ((l_EmailId.lastIndexOf(".")+1) == l_EmailId.length)
			return false ;
		if (l_EmailId.indexOf("..", index) > 0)
			return false ;
		if (l_EmailId.indexOf("..") > 0)
			return false;
		if (l_EmailId.indexOf(" ") > 0)
			return false ;

	}
	return true ;
}

function trim(fieldValue)
{
	var str, beg, end;
    str = fieldValue.toString();
    for(beg=0;(str.charAt(beg) == " ") && (beg<str.length);beg++);
    for(end=str.length-1;(str.charAt(end) == " ") && (end>=0);end--);

	if (beg==str.length)
		return ""
	else
		return str.substring(beg,end+1);
}

function checkZeroLength(fieldValue)
{
	var str
	str = trim(fieldValue).toString();
	if ( str.length ==0)
		return false;
	else
		return true;
}
