/********************************************
PROJECT NAME	: EVENT BRANDER
PURPOSE 		: JS FUNCTIONS USED IN GENERAL	
VERSION			: 1.0
DATE			: 31 OCT,2007
AUTHOR			: LAVANYA

FUNCTION EMPTY AND VALID CHARACTER
USAGE:
	element – name of the control like frm.password.
	Msg – Field Name that we want to display in alert message.

********************************************/

function createXMLHttpRequest() {
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	try { return new XMLHttpRequest(); } catch(e) {}
	alert("XMLHttpRequest not supported");
	return null;
}
var xhReq = createXMLHttpRequest();	  
var xhReq2 = createXMLHttpRequest();
var xhReq3 = createXMLHttpRequest();
// function to trim leading & trailing spaces
function trim(strText) { 
    // this will get rid of leading spaces 
    while (strText.substring(0,1) == ' ') 
        strText = strText.substring(1, strText.length);

    // this will get rid of trailing spaces 
    while (strText.substring(strText.length-1,strText.length) == ' ')
        strText = strText.substring(0, strText.length-1);

   return strText;
} 


function fnValidname(element,msg)
{
//	alert(element.value);
	if(element.value.length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}//if
	else
	{
		if(element.value.length < 6)
		{
			alert(msg+" should be minimum 6 characters !");
			element.focus();
			return false;
		}
		var reg = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
//		var regspan = new RegExp("^[ÁÉÍÓÚÑÜáéíóúñü¿¡«»€][ÁÉÍÓÚÑÜáéíóúñü¿¡«»€]+$");
		if(!element.value.match(reg))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}	
	}//else
	return true;
}//// ispassword function



//function to accept only letters(names)
function fnOnlyLetters(element,msg)
{
	if(element.value.length == 0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}//// if
	else
	{
		var regname = new RegExp("^[a-zA-Z]+[a-zA-Z ]+$");
		if(!(element.value.match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}//// function IsValid() closed

///// ACCEPTS FIELD CONTAINING SPACES,LETTERS AND DIGITS
function fnUserName(element,msg)
{
	if(element.value.length == 0)
	{
		alert(msg + " Should not be left empty");
		element.focus();
		return false;
	}//// if
	else
	{
		var regname = new RegExp("^[a-zA-Z0-9. ]+$");
		if(!(element.value.match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}//// function IsEmpty() closed

///// WON'T ACCEPT FIELD CONTAINING SPACES
function fnNoSpaces(element,msg)
{
	if(element.value.length==0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}//// if
	else
	{
//		var regname = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€]+$");
		var regname = new RegExp("^[ áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
		if(!(element.value.match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}///// function IsEmpty3() closed

//CHECK WHETHER FIELD IS EMPTY OR NOT
function isValidEntry(element,msg)
{
	if(element.value.length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}//// if
	return true;
}//// function IsEmpty4() closed

function isValidNumber(element,msg)
{
	//alert(element.value);
	if(element.value.length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}///if 
	else
	{
		var regnum = new RegExp("^[0-9]");
		if(!(element.value.match(regnum)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}		
	}/// else closed
	return true;
} //// function isValidNumber() closed


function isValidZip(element,msg)
{
	if(element.value.length==0)
	{
		alert("Please enter the "+msg);
		element.focus();
		return false;
	}///if 
	else
	{
		var regnum = new RegExp("^[0-9]");
		if(!(element.value.match(regnum)) || element.value.length < 3 )
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}		
	}/// else closed
	return true;
} //// function isValidNumber() closed

/*
1. PHONE NUMBER VALIDATION
Usage: 
Element – name of the control, like frm.phone
Message – Field Name that we want to display in alert message.
Required – Set this to ‘yes’ if the field is mandatory, otherwise ‘no’.

 if(!isValidPhone(frm.phone,'Phone Number','yes'))
 return;
*/
function isValidPhone(element, msg, required)
{	
	var VarPhone = element.value;
	if (VarPhone== "")
	{	
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if (VarPhone != "")
	{
		var Phno;
		Phno=VarPhone;
		var valid = "-0123456789()";
		var hyphencount = 0;
		for (var i=0; i < Phno.length; i++) 
		{
			temp = "" + Phno.substring(i, i+1);
			if (valid.indexOf(temp) == "-1")
			{
				alert("Invalid characters in your "+msg+". Please try again.");
				element.focus();
				return false;
			}
		}
     } 
	 return true;      
}

/*
2. NUMBER VALIDATION
Usage:
Element – name of the control, like frm.number
Message – Field Name that we want to display in alert message.
Required – Set this to ‘yes’ if the field is mandatory, otherwise ‘no’.

 if(!isValidNumber(frm.num,'Roll Number','yes'))
 return;
*/
function isValidNumber(element, msg, required)
{  
	var VarNumber = element.value;
	if(VarNumber == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if (VarNumber != "")
	{
		var Num;
		Num=VarNumber;
		var valid = "0123456789";
		var hyphencount = 0;
		
		for (var i=0; i < Num.length; i++) 
		{
			temp = "" + Num.substring(i, i+1);
			if (valid.indexOf(temp) == "-1")
			{
			  alert("Invalid characters in your "+msg+".  Please try again.");
			  element.focus();
			  return false;
			}
	   } // end for loop
	   
		if(VarNumber < 1)
		{
			alert(msg+" is not a valid number");
			element.focus();
			return false;
		}
    }   // end if
    return true; 
}  // end function

/*
 EMAIL ADDRESS VALIDATION

Usage: 
Element – name of the control, like frm.email
Required – Set this to ‘yes’ if the field is mandatory, otherwise ‘no’.

	 if(!isValidEmail(frm.email,'yes'))
	 return;
*/

function isValidEmail(element, required)
{
	var VarEmail = element.value;
	if(VarEmail == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter Email Address");
			element.focus();
			return false;
		}
	}	
	if(VarEmail != "")
	{
		var emailStr = VarEmail;
		 
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var firstChars=validChars
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom="(" + firstChars + validChars + "*" + ")"
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) 
		{
			 alert("Email address seems to be incorrect (check @ and .'s)");
			 element.focus();
			 return false;
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null) 
		{
			alert("The username doesn't seem to be valid.");
			element.focus();
			return false;
		}
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) 
		{
			for (var i=1;i<=4;i++) 
			{
				if (IPArray[i]>255) 
				{
					 alert("Destination IP address is invalid!");
					 element.focus();
					 return false;
				}
			}
		}
		var domainArray=domain.match(domainPat)
		if (domainArray==null) 
		{
			alert("The domain name doesn't seem to be valid.");
			element.focus();
			return false;
		}
		var atomPat=new RegExp(atom,"g");
		var domArr=domain.match(atomPat);
		var len=domArr.length;
		if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
		{
		   alert("The address must end in a three-letter domain, or two letter country.");
		   element.focus();
		   return false;
		}
		if (domArr[domArr.length-1].length==2 && len<3) 
		{
			var errStr = "This address ends in two characters, which is a country";
			errStr    += " code.  Country codes must be preceded by ";
			errStr	  += "a hostname and category (like com, co, pub, pu, etc.)";
			alert(errStr);
			element.focus();
			return false;
		}
		if (domArr[domArr.length-1].length==3 && len<2) 
		{
			 var errStr="This address is missing a hostname!";
			 alert(errStr);
			 element.focus();
			 return false;
		}
	}
	return true;
}


//FUNCTION TO CHECK WHETHER GIVEN N CONFIRM PASSWORD MATCH OR NOT
function isPasswordMatch(element1,element2)
{
	if(element1.value!=element2.value)
	{
		alert("password and confirm password are not matching !");
		element2.focus();
		return false;
	}
	return true;
}//// password match function closed



//FUNCTION TO CHECK WHETHER VALID PASSWORD IS ENTERED OR NOT
function fnChkPwd(element)
{
	if(element.value.length < 6 || element.value.length >14)
	{
		alert("Password length should be between 6 and 14!");
		element.focus();
		return false;
	}
	var regpwd = new RegExp("^[áéíóúñüÁÉÍÓÚÑÜ¿¡«»€a-zA-Z0-9]+$");
	if(!element.value.match(regpwd))
	{
		alert("Invalid entry in "+msg);
		element.focus();
		return false;
	}	
	return true;
}



/******************************************
FUNCTION SELECT
*******************************************/

function isValidSelect(element,msg)
{
	if(element.value == "" || element.value == "-1")
	{
		alert("Please select "+ msg +" from the list");
		element.focus();
		return false;
	}//if
	return true;
}/// isselect function clsed

function isValidMessageCount(fieldName,count,msg)
{
	if(fieldName.value.length < count)
	{
			alert(msg);
			fieldName.focus();
			return false;
	}
	return true;
}

///////// FUNCTION FOR FORGOT PASSWORD VALIDATION
function isAnyoneEmpty(fieldname1,fieldname2)
{
	if(fieldname1.value=="" && fieldname2.value=="")
	{
		alert("Please enter User Name or Email address!");
		fieldname1.focus();
		return false;
	}
	else
	{
		/*if(fieldname1.value !="" && fieldname2.value=="")
		{
			if(!isValidName(fieldname1,"User Name"))
				return false;
		}	*/
		if(fieldname1.value=="" && fieldname2.value!="")
		{
			if(!isValidEmail(fieldname2,"Invalid E-Mail"))
				return false;
		}
	}
	return true;
}
function isValidChar(element,msg)
{
	if(element.value.length == 0)
	{
		alert("Please enter the "+ msg);
		element.focus();
		return false;
	}//// if
	else
	{
		var regname = new RegExp("^[YN]");
		if(!(element.value.match(regname)))
		{
			alert("Invalid entry in "+msg);
			element.focus();
			return false;
		}
	}/// else
	return true;
}//// function IsValid() closed
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    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_swapImgRestore() { //v3.0
  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_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 MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; 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];}
}
//-->

/// validation to enter only numbers
function check_alpha(e)
{
  if(window.event)
  {
		if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8) ||(e.keyCode > 58 && e.keyCode < 255) ) 
		return false;
  }
  else if(e.which)
   {
		if((e.which > 1 && e.which < 47 && e.which!=8) ||(e.which > 58 && e.which < 255) ) 
		return false;
   }
   return true;
}


//function to allow only alphanumeric values
function checknum(e)
{
        if(window.event)
        {
			if((e.keyCode>32 && e.keyCode<=64) || (e.keyCode>=91 && e.keyCode<=95) 
			|| (e.keyCode==96) || (e.keyCode>=123 && e.keyCode<=127)) 
			return false;
        }//if
        else if(e.which)
        {
			if((e.which>32 && e.which<=64) ||  (e.which>=91 && e.which<=95) 
			|| (e.which==96) || (e.which>=123 && e.which<=127)) 
			return false;
        }//else if
        return true;
}

/// validation to enter only numbers and (.)period for price
function check_price(e)
{
	  if(window.event)
	  {
			if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8 && e.keyCode!=46) ||(e.keyCode > 58 && e.keyCode < 255) ) 
			return false;
	  }
	  else if(e.which)
	   {
			if((e.which > 1 && e.which < 47 && e.which!=8 && e.which!=46) ||(e.which > 58 && e.which < 255) ) 
			return false;
	   }
	   return true;
}

/// validation to enter only numbers and (.)hypen for phone no.
function check_phone(e)
{
	  if(window.event)
	  {
			if((e.keyCode > 1 && e.keyCode < 47 && e.keyCode!=8 && e.keyCode!=45) ||(e.keyCode > 58 && e.keyCode < 255) ) 
			return false;
	  }
	  else if(e.which)
	   {
			if((e.which > 1 && e.which < 47 && e.which!=8 && e.which!=45) ||(e.which > 58 && e.which < 255) ) 
			return false;
	   }
	   return true;
}

//function to enter only letters and digits
function check_alphanum(e)
{
		if(window.event)
        {
				//alert(e.keyCode);
			   if((e.keyCode>32 && e.keyCode<=47) ||  (e.keyCode>=58 && e.keyCode<=95) 
                || (e.keyCode==96) || (e.keyCode>=123 && e.keyCode<=127)) 
                return false;
        }//if
        else if(e.which)
        {
			   //alert(e.which);
			   if((e.which>32 && e.which<=47) ||  (e.which>=58 && e.which<=95) 
                || (e.which==96) || (e.which>=123 && e.which<=127)) 
                return false;
        }//else if
        return true;
}


/*
7. URL VALIDATION

Usage:
Element – name of the control, like frm.url
Message – Field Name that we want to display in alert message.
Required – Set this to ‘yes’ if the field is mandatory, otherwise ‘no’.

	 if(!isValidURL(frm.url, "URL", "yes")) 
	 return;
*/
function isValidURL(element, msg, required)
{
	if(element.value == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if(element.value != "")
	{
		var oRegExp = /[^:]+:\/\/[^:\/]+(:[0-9]+)?\/?.*/;
		if (!oRegExp.test(element.value))
		{
			alert('\r\n The URL you have entered is invalid.\n Please check it for accuracy.');
			element.focus();
			element.select();
			return false;
		}
	}
	return true;
}



//FUNCTION TO CHECK WHETHER VALID PRICE IS ENTERED OR NOT
function isValidPrice(element, msg, required)
{  
	var VarNumber = element.value;
	if(VarNumber == "")
	{
		var rval = trim(required);
		if (rval.toLowerCase() == "yes" || rval == 1)
		{
			alert("Please enter "+msg);
			element.focus();
			return false;
		}
	}
	if (VarNumber != "")
	{
		var Num;
		Num=VarNumber;
		var valid = "0123456789.";
		var hyphencount = 0;
		
		for (var i=0; i < Num.length; i++) 
		{
			temp = "" + Num.substring(i, i+1);
			if (valid.indexOf(temp) == "-1")
			{
			  alert("Invalid characters in your "+msg+".  Please try again.");
			  element.focus();
			  return false;
			}
	   } // end for loop
	   
		if(VarNumber < 1)
		{
			alert(msg+" is not a valid number");
			element.focus();
			return false;
		}
    }   // end if
    return true; 
}  // end function


//Purpose : function to check all the checkboxes 
//in the given chkbox array in given form 
function fnCheckAll(frm,chkbox,num_chkboxes)
{
	
	var chkbox_name = chkbox+'[]';

	if(num_chkboxes >1)
	{
		
		for(c=0; c<frm.elements[chkbox_name].length; c++)
		{
			frm.elements[chkbox_name][c].checked = true;	
		}
	}
	else
		frm.elements[chkbox_name].checked = true;
}


//Purpose : function to uncheck all the checkboxes 
//in the given chkbox array in given form 
function fnUnCheckAll(frm,chkbox,num_chkboxes)
{
	var chkbox_name = chkbox+'[]';
	if(num_chkboxes >1)
	{
		for(c=0; c<frm.elements[chkbox_name].length; c++)
		{
			frm.elements[chkbox_name][c].checked =false;
		}
	}
	else
		frm.elements[chkbox_name].checked = false;
}

//Purpose : function to calculate the no. of characters as user types the text in textfield
function count_text1(txtelement,name1,cntelement,count_max) 
{
	//txtelement is document.form_name
	//name1 is input name
	//cntelement is span id , where the count to be displayed
	//count_max is max no of characters
	var x=document.getElementById(name1).value;
	document.getElementById(cntelement).innerHTML=count_max-x.length;
	if(x.length>=count_max)
	{
		alert("Max limit is "+count_max);
		return false;
	}
	return true;
}

//Purpose :function to change the status like Active and Inactive
function fnChangeStatus(frm,cnt,name,chkbox)
{
	var chkbox_name = chkbox+'[]';
	if(cnt>1)
	{
		var var_cnt=0;
		//chk whether any manufacturer is selected or not
		for(i=0; i<frm.elements[chkbox_name].length; i++)
		{
			if(frm.elements[chkbox_name][i].checked == true)
			{
				var_cnt++;
				break;
			}//if
		}//for
		if(var_cnt == 0)
		{
			alert("Please select atleast 1  "+name+" to change the status");	
			frm.elements[chkbox_name][0].focus();
			return false;
		}//if
		else
		{
			frm.keyword.value = "change_status";	
			frm.submit();
		}//else
	}//if
	else
	{
		if(frm.elements[chkbox_name].checked == false)
		{
			alert("Please select atleast 1 "+name+" to change the status");	
			frm.elements[chkbox_name].focus;
		}
		else
		{
			frm.keyword.value = "change_status";	
			frm.submit();
		}
	}
	
}//end of function 

//function to clear the text when only when particular text appears
function fnClearText(ctrl_id,text)
{
	if(document.getElementById(ctrl_id).value == text)
		document.getElementById(ctrl_id).value = '';
}


// function to show the 1st level of sub-categories in leftlinks
//Page : index.tpl
function fnShow_SubCats(cat_type,divid,maindiv)
{
	//alert('hi');
	
	var tempdiv = document.getElementById('hdPrevDivId').value;
	//alert(tempdiv);
	
	//remove the display of the previous displayed div
	if(document.getElementById('hdPrevDivId').value !='' && cat_type == 'main')
	{
		if(tempdiv != divid)
		{
			document.getElementById(tempdiv).className = 'hidden';
			document.getElementById(tempdiv).style.display = 'none';
		}
	}
	
	if(document.getElementById(divid).style.display == '')
	{
		//alert("hi")
		document.getElementById(divid).style.display = 'none';
	}
	else
	{
		document.getElementById(divid).style.display = '';
		document.getElementById(maindiv).className = 'current';
	}
	
	if(cat_type == 'main')
		document.getElementById('hdPrevDivId').value = divid;
	
}

//function to display the selected main category n sub categories in the left panel of the client pages
function fnShow_SelectedCat()
{
	var frm = document.frmCats;
	var cat = document.getElementById('selMainCat').value;
	//alert(cat);
	//frm.hdCatId.value = cat;
	//frm.keyword.value = "show_cat";
	//frm.hdBGCat.value = cat;
	//frm.hdCurId.value = cat;
	//frm.hdLevel.value = 1;
	frm.action = cat;
	//alert(frm.action);
	frm.submit();
}

//function to display the selected category and its sub categories in the left panel
function fnDisplay_Cat(catid,cur_id,level)
{
	var frm = document.frmCats;
	frm.hdCatId.value = catid;
	frm.hdCurId.value = cur_id;
	frm.hdLevel.value = level;
	frm.keyword.value = "show_cat";
	frm.submit();
}


//function to change the Back Ground color of the selected category in the left panel
function fnChange_BGColor(selcat)
{
	document.getElementById(selcat).className = 'current';	
	//document.getElementById(selcat).backgroundColor = '#FE7577';
	//alert(document.getElementById(selcat).backgroundColor);
	if(document.getElementById('hdBGCat').value != '')
	{
		var element = document.getElementById('hdBGCat').value;
		document.getElementById(element).className = 'hidden';
		//document.getElementById(element).backgroundColor = '';
	}
	document.getElementById('hdBGCat').value = selcat;
}

function fnChange_On_BGColor(selcat)
{
	document.getElementById('cat'+selcat).className = 'main';	
	if(document.getElementById('hdCurId').value!='' && (document.getElementById('hdCurId').value!=document.getElementById('main_cat').value))
	{
		var element = document.getElementById('hdCurId').value;
		
	}
}

function fnChange_Off_BGColor(selcat)
{
	document.getElementById('cat'+selcat).className = 'hidden';	
	if(document.getElementById('hdCurId').value!='')
	{
		var element = document.getElementById('hdCurId').value;
		document.getElementById('cat'+element).className = 'current';
	}
	if(document.getElementById('main_cat').value!='')
	{
		var main = document.getElementById('main_cat').value;
		document.getElementById('cat'+main).className = 'main';
	}
}

//function to remove the background color of selected category in the left panel
function fnRemove_BGColor(selcat)
{
	if(document.getElementById(selcat).className == 'current')
		document.getElementById(selcat).className = 'hidden';		
}

//function for search catalog in left panel
function fnSearch_Catalog(data)
{
	if((document.getElementById(data).value !='') && (document.getElementById(data).value !='search catalog'))
	{
		document.frmSearch.search_keyword.value = "search_products";
		document.frmSearch.action = "catalog-search.html";
		//document.frmSearch.submit();
	}										 	
}


//function to enable the given field, images,span ids
function fnEnable_Field(next_field,current_field,field_type,spanid,hideimg,showimg)
{
	var frm = document.frmShop;
	var e, i = 0;
	if(document.getElementById('modify').value==1)
	  document.getElementById('modify').value=2;
	switch(field_type)
	{
		case 'text':
		if((frm.elements[current_field].value != '') &&  (frm.elements[current_field].value != 0))   
		{
			
			if(frm.elements[next_field].length>0)
			{
				  while(e = frm.elements[next_field][i++])
				  {
					e.disabled = false;
				  }//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = false;	
				//frm.elements[next_field].focus();
			}//else
		}//if
		break;
		case 'select':
		if((frm.elements[current_field].value != -1))   
		{
			if(frm.elements[next_field].length>0)
			{
				  while(e = frm.elements[next_field][i++])
				  {
					e.disabled = false;
				  }//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = false;	
				//frm.elements[next_field].focus();
			}//else
		}
		break;

		case 'radio':
		if((frm.elements[current_field].value != ''))   
		{
			//alert(frm.elements[next_field]);
			if(frm.elements[next_field].length>0)
			{
				  while(e = frm.elements[next_field][i++])
				  {
					e.disabled = false;
				  }//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = false;	
				//frm.elements[next_field].focus();
			}//else
		
				//document.getElementById(next_field).focus();
		}
		break;
		
		case 'checkbox':
		var len = frm.elements[current_field].length;
		var bCheck = false;
		for(i=0; i<len; i++)   
		{
			if(frm.elements[current_field][i].checked == true)
			{
				bCheck = true;	
				break;
			}	
			
		}
		if(bCheck)
		{
			if(frm.elements[next_field].length>0)
			{
				while(e = frm.elements[next_field][i++])
				{
					e.disabled = false;
				}//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = false;	
				//frm.elements[next_field].focus();
			}//else
		}
		break;
		
	}//switch
	
	
	if(spanid !='')
		document.getElementById(spanid).className = 'boldorange';
	if(field_type=='radio')
	{
/*		document.getElementById('question_off').style.display='none';
		document.getElementById('question_on').style.display='';*/
		var cnt = document.getElementById("hdimprintCount").value;
		for(var l=0;l<cnt;l++)
		{
			document.getElementById('span_off'+l).style.display='none';
			document.getElementById('span_on'+l).style.display='';
		}
	}
	document.getElementById(hideimg).style.display = 'none';
	document.getElementById(showimg).style.display = '';
}

//function to enable the given field, images,span ids
function fnDisable_Field(next_field,current_field,field_type,spanid,hideimg,showimg)
{
	var frm = document.frmShop;
	var e, i = 0;
	if(document.getElementById('modify').value==1)
	  document.getElementById('modify').value=2;
	switch(field_type)
	{
		case 'text':
		if((frm.elements[current_field].value != '') &&  (frm.elements[current_field].value != 0))   
		{
			
			if(frm.elements[next_field].length>0)
			{
				  while(e = frm.elements[next_field][i++])
				  {
					e.disabled = true;
				  }//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = true;	
			}//else
		}//if
		break;
		case 'select':
		if((frm.elements[current_field].value != -1))   
		{
			if(frm.elements[next_field].length>0)
			{
				  while(e = frm.elements[next_field][i++])
				  {
					e.disabled = true;
				  }//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = true;	
			}//else
		}
		break;

		case 'radio':
		if((frm.elements[current_field].value != ''))   
		{
			//alert(frm.elements[next_field]);
			if(frm.elements[next_field].length>0)
			{
				  while(e = frm.elements[next_field][i++])
				  {
					e.disabled = true;
				  }//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = true;	
			}//else
		
				//document.getElementById(next_field).focus();
		}
		break;
		
		case 'checkbox':
		var len = frm.elements[current_field].length;
		var bCheck = true;
		for(i=0; i<len; i++)   
		{
			if(frm.elements[current_field][i].checked == true)
			{
				bCheck = false;	
				break;
			}	
			
		}
		if(bCheck)
		{
			if(frm.elements[next_field].length>0)
			{
				while(e = frm.elements[next_field][i++])
				{
					e.disabled = true;
				}//while		
			}//if
			else
			{
				frm.elements[next_field].disabled  = true;	
			}//else
		}
		break;
		
	}//switch
	
	
	if(spanid !='')
		document.getElementById(spanid).className = 'boldgreyfont';
	if(field_type=='radio')
	{
/*		document.getElementById('question_off').style.display='none';
		document.getElementById('question_on').style.display='';*/
		var cnt = document.getElementById("hdimprintCount").value;
		for(var l=0;l<cnt;l++)
		{
			document.getElementById('span_off'+l).style.display='';
			document.getElementById('span_on'+l).style.display='none';
		}
	}
	document.getElementById(hideimg).style.display = '';
	document.getElementById(showimg).style.display = 'none';
}

//function to show the corresponding the imprint location for the given imprint methods
function fnShow_ImprintLocations(frm,Imprint,proid,price_mode)
{
	if(price_mode=='Promotional' || price_mode=='Normal')
		var totQty = parseInt(document.getElementById('txtQty').value);
	else if(price_mode=='Apparel')
	{
		var totQty = 0;
		for(var i=0;i<frm.elements['hid_name[]'].length;i++)
		{
			if(document.getElementById('txtQty'+i).value!=0 || document.getElementById('txtQty'+i).value!='')
				totQty = totQty+parseInt(document.getElementById('txtQty'+i).value);
		}
	}
	
	if(Imprint==0 && document.getElementById('imprint_id').value>0)
		Imprint = document.getElementById('imprint_id').value;
	
	document.getElementById('imprint_id').value = Imprint;
	var opt_cnt=document.getElementById('hdOptionsCount').value;
	xhReq2.open("GET", "imprint_locations_list.php?hdImprintId="+Imprint+"&hdPro="+proid+"&total_qty="+totQty+"&option_cnt="+opt_cnt, true);
	xhReq2.onreadystatechange = onSumResponse_ImprintLocations_cl;
	xhReq2.send(null);
}

function onSumResponse_ImprintLocations_cl() 
{
	if (xhReq2.readyState != 4)  { return; }
	var serverResponse = xhReq2.responseText;
	if(document.getElementById('modify').value==1)
		document.getElementById('modify').value=2;
	var cell = document.getElementById("td_loc");
	
	if(serverResponse==0)
	{
		document.getElementById('quantity_error').style.display='';
		fnDisable_Field('chkLoc[]','chkLoc[]','checkbox','DecLoc','imgFourOff','imgFourOn');
		if(document.getElementById('modify').value==2)
		{
			document.getElementById('updateOff').style.display = '';
			document.getElementById('updateOn').style.display = 'none';
		}
		else
		{
			document.getElementById('QuoteOn').style.display = 'none';
			document.getElementById('QuoteOff').style.display = '';
		}
	}
	else
	{
		if(document.getElementById('hdimprintCount').value>0)
		{
			document.getElementById('tr_loc').style.display='';
		}
		if(serverResponse!='' && document.getElementById('imgFourOn').style.display == 'none')
		{
			document.getElementById('quantity_error').style.display='none';
			document.getElementById('imgFourOff').style.display = 'none';
			document.getElementById('imgFourOn').style.display = '';
			cell.innerHTML = serverResponse;
			if(document.getElementById('hdOptionsCount').value >0)
			fnShow_options_on(document.frmShop,'imgFiveOff','imgFiveOn','Options');
			if(document.getElementById('hdOptionsCount').value==0 && document.getElementById('hdlocCount').value<2 && document.getElementById('modify').value!=2)
			{
				document.getElementById('QuoteOff').style.display = 'none';
				document.getElementById('QuoteOn').style.display = '';
			}
			else if(document.getElementById('modify').value==2)
			{
				document.getElementById('updateOff').style.display = 'none';
				document.getElementById('updateOn').style.display = '';
			}
		}
	}
	/*else
	{
		if(document.getElementById('hdOptionsCount') >0)
			fnShow_options_on(document.frmShop,'imgFiveOff','imgFiveOn','Options');
		else
		{
			document.getElementById('QuoteOn').style.display='none';
			document.getElementById('QuoteOff').style.display='';
		}
	}*/
}

function highlight_color(id,color_id,color_cat_id,pid,cnt_imprint,imprint_id,price_mode)
{
	var sel = document.frmShop.selColors;
	var len = sel.length;
	for(var i=0;i<len;i++)
	{
		if(sel.options[i].value==color_id)
		{
			sel[i].selected = true;
			break;
		}
	}
	if(document.getElementById('hid_color_td').value!='')
	{
		var prev_id = document.getElementById('hid_color_td').value;
		document.getElementById(prev_id).className='';
	}
	document.getElementById(id).className = 'current';
	document.getElementById('hid_color_td').value = id;
	if(price_mode=='Apparel')
	{
		var prev_color_cat = document.getElementById('hid_prev_color_cat_id').value;
		if(color_cat_id!=prev_color_cat)
		{
			document.getElementById('hid_prev_color_cat_id').value = color_cat_id;
			xhReq3.open("GET", "price_grid.php?product_id="+pid+"&cat_id="+color_cat_id+"&type=price", true);
			xhReq3.onreadystatechange = onSumResponse_price_cl;
			xhReq3.send(null);
			xhReq2.open("GET", "price_grid.php?product_id="+pid+"&cat_id="+color_cat_id+"&cnt_imprint="+cnt_imprint+"&imprint_id="+imprint_id+"&mode="+price_mode+"&type=quantity", true);
			xhReq2.onreadystatechange = onSumResponse_quantity_cl;
			xhReq2.send(null);
		}
	}
}

function highlightcolor(color_id,pid,cnt_imprint,imprint_id,price_mode)
{
	var sel = document.frmShop.selColors;
	var len = sel.length;
	for(var i=0;i<len;i++)
	{
		if(sel[i].selected == true)
		{
			var id = 'color'+i;
			break;
		}
	}
	
	if(document.getElementById('hid_color_td').value!='')
	{
		var prev_id = document.getElementById('hid_color_td').value;
		document.getElementById(prev_id).className='';
	}
	document.getElementById(id).className = 'current';
	document.getElementById('hid_color_td').value = id;
	if(price_mode=='Apparel')
	{
		var frm = document.frmShop;
		var arr;
		if(frm.elements['hid_name[]'])
		{
			if(frm.elements['hid_name[]'].length)
			{
				for(var i=0;i<frm.elements['hid_name[]'].length;i++)
				{
					if(arr==undefined)
						arr = frm.elements['hid_name[]'][i].value+"||"+document.getElementById('txtQty'+i).value;
					else
						arr = arr+','+frm.elements['hid_name[]'][i].value+"||"+document.getElementById('txtQty'+i).value;
				}
			}
			else
				arr = frm.elements['hid_name[]'].value+"||"+document.getElementById('txtQty0').value;
		}
		xhReq.open("GET", "pricegrid.php?product_id="+pid+"&color_id="+color_id+"&type=catid", true);
		xhReq.onreadystatechange = onSumResponse_hide_cl;
		xhReq.send(null);
		xhReq3.open("GET", "pricegrid.php?product_id="+pid+"&color_id="+color_id+"&type=price", true);
		xhReq3.onreadystatechange = onSumResponse_price_cl;
		xhReq3.send(null);
		xhReq2.open("GET", "pricegrid.php?product_id="+pid+"&color_id="+color_id+"&cnt_imprint="+cnt_imprint+"&imprint_id="+imprint_id+"&mode="+price_mode+"&qty="+arr+"&type=quantity", true);
		xhReq2.onreadystatechange = onSumResponse_quantity_cl;
		xhReq2.send(null);
	}
}

function onSumResponse_hide_cl()
{
	if(xhReq.readyState != 4)  { return; }
	var serverResponse = xhReq.responseText;
	if(serverResponse!='')
		document.getElementById('hid_prev_color_cat_id').value = serverResponse;
}


function onSumResponse_price_cl()
{
	if(xhReq3.readyState != 4)  { return; }
	var serverResponse = xhReq3.responseText;
	var cell = document.getElementById('price_grid');
	if(serverResponse!='')
		cell.innerHTML = serverResponse;
}

function onSumResponse_quantity_cl()
{
	if(xhReq2.readyState != 4)  { return; }
	var serverResponse = xhReq2.responseText;
	var cell = document.getElementById('quantity_grid');
	if(serverResponse!='')
		cell.innerHTML = serverResponse;
}

function mouse_color(id,type,cnt)
{
	var prev_id = document.getElementById('hid_color_td').value;
	if(type==0 && prev_id!='')
		document.getElementById(prev_id).className ='current';
	if(type==1 && prev_id!=id && prev_id!='')
		document.getElementById(prev_id).className='';
}

function fnShow_Colors(frm,id,serial)
{
	var options_count = document.getElementById('hdOptionsCount').value;
	//alert(options_count);
	var len = frm.elements['chkLoc[]'].length;
	var cnt=0;
	var active=0;
	if(frm.elements['chkLoc[]'].length)
	{
		for(var i=0;i<len;i++)
			if(frm.elements['chkLoc[]'][i].checked==true)
				cnt++;
		if(cnt>0)
			active=1;
	}
	else
		if(frm.elements['chkLoc[]'].checked == true)
			active=1;
	if(len)
	{
		if(frm.elements['chkLoc[]'][serial].checked == true)
		{
			if(document.getElementById('color'+id))
				document.getElementById('color'+id).style.display='';
		}
		else
		{
			if(document.getElementById('color'+id))
				document.getElementById('color'+id).style.display='none';
		}
	}
	else
		if(frm.elements['chkLoc[]'].checked)
		{
			if(document.getElementById('color'+id))
				document.getElementById('color'+id).style.display='';
		}
		else
		{
			if(document.getElementById('color'+id))
				document.getElementById('color'+id).style.display='none';
		}

	if(active==1 && options_count>0)
		fnShow_options_on(frm,'imgFiveOff','imgFiveOn','Options');
	else if(active==1 && options_count == 0)
	{
		document.getElementById('QuoteOn').style.display='';
		document.getElementById('QuoteOff').style.display='none';
	}
	else
		fnShow_options_off(frm,'imgFiveOff','imgFiveOn','Options');
}

function fnShow_options_on(frm,off,on,spanid)
{
	var active =0;
	var cnt =0;
	var len = frm.elements['chkLoc[]'].length;
	if(frm.elements['chkLoc[]'].length)
	{
		for(var i=0;i<len;i++)
			if(frm.elements['chkLoc[]'][i].checked==true)
				cnt++;
		if(cnt>0)
			active=1;
	}
	else if(frm.elements['chkLoc[]'])
	{
		if(frm.elements['chkLoc[]'].checked == true)
			active=1;
	}
	else
	{
		var active =1;
	}
	if(active==1)
	{
		if(document.getElementById(off).style.display=='')
		{
			if(frm.elements['chkOpt[]'])
			{
				document.getElementById(off).style.display='none';
				document.getElementById(on).style.display='';
				document.getElementById(spanid).className = 'boldorange';
				if(frm.elements['chkOpt[]'].length)
				{
					for(var i=0;i<frm.elements['chkOpt[]'].length;i++)
					{
						frm.elements['chkOpt[]'][i].disabled=false;
						document.getElementById("options_off"+i).style.display = 'none';
						document.getElementById("options_on"+i).style.display = '';
					}
				}
				else
				{
					frm.elements['chkOpt[]'].disabled=false;
					document.getElementById("options_off0").style.display = 'none';
					document.getElementById("options_on0").style.display = '';
				}
			}
			else
			{	
				if(document.getElementById('modify').value==2)
				{
					document.getElementById('updateOff').style.display = 'none';
					document.getElementById('updateOn').style.display = '';
				}
				else
				{
					document.getElementById('QuoteOn').style.display='';
					document.getElementById('QuoteOff').style.display='none';
				}
			}
		}
	}
	else
		fnShow_options_off(frm,off,on,spanid);
}

function fnShow_options_off(frm,off,on,spanid)
{
	var len = frm.elements['chkLoc[]'].length;
	var active =1;
	var cnt =0;
	if(frm.elements['chkLoc[]'].length)
	{
		for(var i=0;i<len;i++)
			if(frm.elements['chkLoc[]'][i].checked==true)
				cnt++;
		if(cnt==0)
			active=0;
	}
	else if(frm.elements['chkLoc[]'])
	{
		if(frm.elements['chkLoc[]'].checked == false)
			active=0;
	}
	else
	{
		var active =0;
	}
	if(active==0)
	{
		if(document.getElementById(off).style.display=='none')
		{
			document.getElementById(off).style.display='';
			document.getElementById(on).style.display='none';
			document.getElementById(spanid).className = 'boldgreyfont';
			if(frm.elements['chkOpt[]'].length)
			{
				for(var i=0;i<frm.elements['chkOpt[]'].length;i++)
				{
					frm.elements['chkOpt[]'][i].disabled=true;
					document.getElementById("options_off"+i).style.display = '';
					document.getElementById("options_on"+i).style.display = 'none';
				}
			}
			else
			{
				frm.elements['chkOpt[]'].disabled=true;
				document.getElementById("options_off0").style.display = '';
				document.getElementById("options_on0").style.display = 'none';
			}
			if(document.getElementById('modify').value==2)
			{
				document.getElementById('updateOff').style.display = '';
				document.getElementById('updateOn').style.display = 'none';
			}
			else
			{
				document.getElementById('QuoteOn').style.display='none';
				document.getElementById('QuoteOff').style.display='';
			}
		}
	}
}

function fnShowbtn(frm)
{
	if(frm.elements['chkLoc[]']){
	var len = frm.elements['chkLoc[]'].length;
	var active =1;
	var cnt =0;
	if(frm.elements['chkLoc[]'].length)
	{
		for(var i=0;i<len;i++)
			if(frm.elements['chkLoc[]'][i].checked==true)
				cnt++;
		if(cnt==0)
			active=0;
	}
	else if(frm.elements['chkLoc[]'])
	{
		if(frm.elements['chkLoc[]'].checked == false)
			active=0;
	}
	else
	{
		var active =0;
	}
	
	if(active==1)
	{
		 if(document.getElementById('QuoteOff').style.display==''  && document.getElementById('modify').value!=2)
		 {
			 document.getElementById('QuoteOn').style.display='';
			 document.getElementById('QuoteOff').style.display='none';
		 }
		 else if(document.getElementById('updateOff').style.display==''  && document.getElementById('modify').value==2)
		 {
			 document.getElementById('updateOn').style.display='';
			 document.getElementById('updateOff').style.display='none';
		 }
	}
	else
	{
		 if(document.getElementById('QuoteOn').style.display=='none' && document.getElementById('modify').value!=2)
		 {
			document.getElementById('QuoteOn').style.display='none';
			document.getElementById('QuoteOff').style.display='';
		 }
		 else if(document.getElementById('updateOn').style.display=='none' && document.getElementById('modify').value==2)
		 {
			 document.getElementById('updateOn').style.display='none';
			 document.getElementById('updateOff').style.display='';
		 }
	}
	}
}

function on_create_quote()
{
	document.getElementById('modify').value=2;
	if(document.getElementById('modify').value==2)
	{
		 document.getElementById('updateOn').style.display='';
		 document.getElementById('updateOff').style.display='none';
	}
}