// 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 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;
 	}

	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 checkInternationalPhone(strPhone)
	{
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	}
	
	function validateZIP(field) 
	{
		var valid = "0123456789-";
		var hyphencount = 0;
	
		
		if (field.length!=5 && field.length!=10) 
		{
		alert("Please enter your 5 digit or 5 digit+4 zip code.");
			return false;
		}
		for (var i=0; i < field.length; i++) 
		{
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") 
		{
		alert("Invalid characters in your zip code.  Please try again.");
			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-"))
		 {
		alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return false;
	        }
		}
		return true;
	}
	
	
	function validateemail(emailaddress)
	{
		/*var	returnval=true;
		if(emailaddress.indexOf('@')==-1 ||emailaddress.indexOf('.')==-1 || emailaddress.indexOf(' ')!=-1 || emailaddress.lastIndexOf('@')>emailaddress.lastIndexOf('.') || emailaddress.indexOf('@')!= emailaddress.lastIndexOf('@') || emailaddress.length-emailaddress.lastIndexOf('.')<3 || emailaddress.indexOf('.')!= emailaddress.lastIndexOf('.'))
		{
			returnval=false;
			return returnval;
		}
		else
		{
			returnval=true;
			return returnval;
		}*/
		
		if(!emailaddress.match(/^[A-Za-z0-9\._\-+]+@[A-Za-z0-9_\-+]+(\.[A-Za-z0-9_\-+]+)+$/))
			return false;
		return true;
	}
	
	
	function IsNumeric(strString)
	{
	   var strValidChars = "0123456789.-@#$%^&*()!";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	   for (i = 0; i < strString.length && blnResult == true; i++)
		{
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1)
			 {
			 blnResult = false;
			 }
		}
	   return blnResult;
	}
	
	function IsNumeric2(strString)
	{
	   var strValidChars = "0123456789!";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	   for (i = 0; i < strString.length && blnResult == true; i++)
		{
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1)
			 {
			 blnResult = false;
			 }
		}
	   return blnResult;
	}
	
	function allowNumber(strString)
	{
	   var strValidChars = "0123456789";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	   for (i = 0; i < strString.length && blnResult == true; i++)
		{
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1)
			 {
			 blnResult = false;
			 }
		}
	   return blnResult;
	}
	
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

	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;
	}
	
	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++){   
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}
	
	function daysInFebruary (year){
		// February has 29 days in any year evenly divisible by four,
		// EXCEPT for centurial years which are not also divisible by 400.
		return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
	}
	
	function DaysArray(n)
	 {
		for (var i = 1; i <= n; i++) {
			this[i] = 31
			if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
			if (i==2) {this[i] = 29}
	   } 
	   return this
	}
	
	function isDate(dtStr)
	{
		var daysInMonth = DaysArray(12)
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strMonth=dtStr.substring(0,pos1)
		var strDay=dtStr.substring(pos1+1,pos2)
		var strYear=dtStr.substring(pos2+1)
		strYr=strYear
		if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
		if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
		for (var i = 1; i <= 3; i++) {
			if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
		}
		month=parseInt(strMonth)
		day=parseInt(strDay)
		year=parseInt(strYr)
		if (pos1==-1 || pos2==-1){
			alert("The date format should be : mm/dd/yyyy")
			return false
		}
		if (strMonth.length<1 || month<1 || month>12){
			alert("Please enter a valid month")
			return false
		}
		if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
			alert("Please enter a valid day")
			return false
		}
		if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
			alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
			return false
		}
		if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
			alert("Please enter a valid date")
			return false
		}
			
		
	return true
	}
	
	function convertdate(datevalue)
	{
		
		var strDatestyle = "US"; 
		var datefieldvalue;
		var strDateArray;
		var strDay;
		var strMonth;
		var strYear;
		var intday;
		var intMonth;
		var intYear;
		var booFound = false;
		var fromdate;
		var todate;
		var strSeparatorArray = new Array("-"," ","/",".");
		var strMonthArray = new Array(12);
		strMonthArray[0] = "Jan";
		strMonthArray[1] = "Feb";
		strMonthArray[2] = "Mar";
		strMonthArray[3] = "Apr";
		strMonthArray[4] = "May";
		strMonthArray[5] = "Jun";
		strMonthArray[6] = "Jul";
		strMonthArray[7] = "Aug";
		strMonthArray[8] = "Sep";
		strMonthArray[9] = "Oct";
		strMonthArray[10] = "Nov";
		strMonthArray[11] = "Dec";
		strDate = datevalue;
		if (strDate.length < 1)
		{
			return true;
		}
		for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++)
		{
			if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
			{
				strDateArray = strDate.split(strSeparatorArray[intElementNr]);
				if (strDateArray.length != 3) 
				{
				err = 1;
				return false;
				}
			else 
			{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
				booFound = true;
		   }
		}
		if (booFound == false) {
		if (strDate.length>5) {
		strDay = strDate.substr(0, 2);
		strMonth = strDate.substr(2, 2);
		strYear = strDate.substr(4);
		   }
		}

		if (strYear.length == 2) 
		{
			strYear = '20' + strYear;
		}
		
		
		// US style
		if (strDatestyle == "US") {
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
		}
		intday = parseInt(strDay, 10);
		if (isNaN(intday)) {
		err = 2;
		return false;
		}
		intMonth = parseInt(strMonth, 10);
		if (isNaN(intMonth)) {
		for (i = 0;i<12;i++) {
		if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
		intMonth = i+1;
		strMonth = strMonthArray[i];
		i = 12;
		   }
		}
		if (isNaN(intMonth)) {
		err = 3;
		return false;
		   }
		}
		intYear = parseInt(strYear, 10);
		if (isNaN(intYear)) {
		err = 4;
		return false;
		}
		if (intMonth>12 || intMonth<1) {
		err = 5;
		return false;
		}
		if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
		}
		if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
		}
		if (intMonth == 2) {
		if (intday < 1) {
		err = 8;
		return false;
		}
		if (LeapYear(intYear) == true) {
		if (intday > 29) {
		err = 9;
		return false;
		}
		}
		else {
		if (intday > 28) {
		err = 10;
		return false;
		}
		}
		}
		if (strDatestyle == "US") {
		datefieldvalue = strMonthArray[intMonth-1] + ", " + intday+" " + strYear;
		}
		else {
		datefieldvalue = intday + ", " + strMonthArray[intMonth-1] + " " + strYear;
		}
		return datefieldvalue;
	}
	
	function checkdaterange(from,to)
	{
		fromdate = convertdate(from);
		todate = convertdate(to);
		if (Date.parse(fromdate) >= Date.parse(todate))
		{
			alert("To date must occur after the from date.");
			return false;
		}
		return true;
	}
	
	function checkdaterange1(from,to)
	{
		fromdate = convertdate(from);
		todate = convertdate(to);
		if (Date.parse(fromdate) >= Date.parse(todate))
		{
			alert("Bid End date should be greater than current date.");
			return false;
		}
		return true;
	}
	
	function togglediv(id)
	{
		var objid = document.getElementById(id);
		
		if(objid.style.display == 'none')
		{
			objid.style.display = 'block';
			
			objid.style.backgroundColor="#D1DCEB";
			objid.style.top="170px";
			objid.style.left="50px";
			
		}
		else
		{
			objid.style.display = 'none';
		}
		
	}
	function toggledivdisplay(id)
	{
		var objid = document.getElementById(id);
		
		if(objid.style.display == 'none')
		{
			objid.style.display = 'block';
			objid.style.position='absolute';
			objid.style.backgroundColor="#DEECF5";
			objid.style.top="580px";
			objid.style.left="200px";
			
		}
		else
		{
			objid.style.display = 'none';
		}
		
	}
	
	function validateserachdaterangeform(frm)
	{
		if(frm.from_date.value == "")
		{
			alert("From date is required");
			frm.from_date.focus();
			return false;
		}
		
		if(isDate(frm.from_date.value) == false)
		{
			frm.from_date.value = "";
			frm.from_date.focus();
			return false;
		}
		
		if(frm.to_date.value == "")
		{
			alert("To date is required");
			frm.to_date.focus();
			return false;
		}
		
		if(isDate(frm.to_date.value) == false)
		{
			frm.to_date.value = "";
			frm.to_date.focus();
			return false;
		}
		
		if(checkdaterange(frm.from_date.value,frm.to_date.value) == false)
		{
			frm.from_date.value = "";
			frm.to_date.value = "";
			frm.from_date.focus();
			return false;
		}
		
		
		return true;
	}
	
	function checkusername(strString)
	{
	   var strValidChars = ".-@#$%^&*()! ";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	   for (i = 0; i < strString.length && blnResult == true; i++)
		{
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) != -1)
			 {
			 blnResult = false;
			 }
		}
	   return blnResult;
	}
	
	
	function isValidURL(url)
	{
	   var v = new RegExp();
		v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
		
			if (!v.test(url))
			{
				return false; 
			}
			else
			{
				return true;
			}
		
	}
	
	function selectall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = true;
		}		 
		return false;
	}
	
	function unselectall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = false;
		}		 
		return false;
	}
	
	function checkall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = true;
		}		 
		return false;
	}
	
	function uncheckall(name,noofsites)
	{
		for(p=1;p<noofsites;p++)
		{
		  document.getElementById(name+p).checked = false;
		}		 
		return false;
	}
	
	function valButton(btn) 
	{
		var cnt = -1;
		for (var i=btn.length-1; i > -1; i--) 
		{
			if (btn[i].checked)
			{
				cnt = i;
				i = -1;
			}
		}
		if (cnt > -1) 
			return btn[cnt].value;
		else
			return null;
	}
                  
/*product validataion*/				  
	function chckproduct(){
		
		var selection=document.getElementById("catids").value;
		if(selection==""){
			document.getElementById("error1").innerHTML="<span class='red'>Select Category !</span>"
			document.getElementById("catids").focus();
			return false;
		}else{
			document.getElementById("error1").innerHTML="&nbsp;";
		}
		
		var product_title=document.getElementById("producttitle").value;
		if(product_title==""){
			document.getElementById("error2").innerHTML="<span class='red'>Enter Title !</span>"
			document.getElementById("producttitle").focus();
			return false;
		}else{
			document.getElementById("error2").innerHTML="&nbsp;";
		}
		if(document.addproduct.editid.value==""){
			if(document.addproduct.prdimage.value==""){
				document.getElementById("error3").innerHTML="<span class='red'>Upload image for Product !</span>"
				document.addproduct.prdimage.focus();
				return false;
			}else{
				document.getElementById("error3").innerHTML="&nbsp;";	
			}
		}
		if(document.addproduct.prdimage.value!=""){
				if(!extensioncheck(document.addproduct.prdimage.value)){
					document.getElementById("error3").innerHTML="<span class='red'>Only JPEG,GIF,PNG are allowed !</span>"
					document.addproduct.prdimage.focus();
					return false
				}else{
					document.getElementById("error3").innerHTML="&nbsp;";	
				}
		}
		
			/*if(document.addproduct.white_baseprice.value==""){
				document.getElementById("error4").innerHTML="<span class='red'>Enter baseprice for white !</span>"
				document.addproduct.white_baseprice.focus();
				return false;
		}else{
				document.getElementById("error4").innerHTML="&nbsp;";	
		}
		
		if(document.addproduct.white_baseprice.value!="" && !IsNumeric(document.addproduct.white_baseprice.value)){
				document.getElementById("error4").innerHTML="<span class='red'>Only numeric value are allowed !</span>"
				document.addproduct.white_baseprice.focus();
				return false;
		}else{
				document.getElementById("error4").innerHTML="&nbsp;";	
		}
	if(document.addproduct.color_baseprice.value==""){
				document.getElementById("error4").innerHTML="<span class='red'>Enter baseprice for color !</span>"
				document.addproduct.color_baseprice.focus();
				return false;
		}else{
				document.getElementById("error4").innerHTML="&nbsp;";	
		}
		if(document.addproduct.color_baseprice.value!="" && !IsNumeric(document.addproduct.color_baseprice.value)){
				document.getElementById("error4").innerHTML="<span class='red'>Only numeric value are allowed !</span>"
				document.addproduct.color_baseprice.focus();
				return false;
		}else{
				document.getElementById("error4").innerHTML="&nbsp;";	
		}*/
		
		var flag6=false;
		var startrange=document.getElementsByName("minbaserange[]");
		var finalrange=document.getElementsByName("maxbaserange[]");
		var whiteprce=document.getElementsByName("whiteprice[]");
		var colorprce=document.getElementsByName("colorprice[]");
	
		var a=parseInt(trim(startrange[0].value));
		var b=parseInt(trim(finalrange[0].value));
		var msg="";
		if(trim(startrange[0].value)=="" || trim(finalrange[0].value)==""){
			var msg="Enter at least one range of price for white and color";
		    var flag6= false;	
		}else{
				for(var m=0;m<whiteprce.length;m++){
					if(a<b){
						var k=(m+1);
						if(startrange[k]){
							 if(trim(startrange[k].value)!="" && trim(finalrange[m].value)!=""){
								var a=parseInt(finalrange[m].value);
								var b=parseInt(startrange[k].value);
							 }
							  if(trim(startrange[m].value)!=""){
								  if(trim(finalrange[m].value)=="" || !IsNumeric(trim(finalrange[m].value))){
									  var msg="Enter max range";
									  var flag6= false;	
									  break;
								  }
								  if(trim(finalrange[m].value)!="" && parseInt(trim(finalrange[m].value))<=parseInt(trim(startrange[m].value))){
									 var msg="max range must be greater than min range";
									 var flag6= false;	
									 break;
								  }
							  }
							  
							 if(trim(startrange[m].value)!="" && trim(finalrange[m].value)!=""){
								 if(trim(whiteprce[m].value)==""  || trim(colorprce[m].value)==""){
									var msg="Enter price for white/color";
									 var flag6= false;	
									break;
								 }else if(!IsNumeric(trim(whiteprce[m].value)) || !IsNumeric(trim(colorprce[m].value))){
									var msg="Enter only numeric value for white/color price";
									 var flag6= false;	
									break;															 
								 }else{
									var flag6=true;	 
								 }
							 }
						}
					 }else{
						var msg="Max range can not be greater than the next row min range/ Only numeric value are allowed ";
						var flag6=false;	
						break;
					}
			 	}
		}
		
		if(flag6==false && msg!=""){
			document.getElementById("error4").innerHTML="<span class='red'>"+msg+" !</span>"
			return false;
			
		}else{
			document.getElementById("error4").innerHTML="&nbsp;";
		}
		
		
		var sizeprices=document.getElementsByName("sizeprice[]");
		var sizeid=document.getElementsByName("sizeids[]");
		var flag1=false;
		
		for(var k=0;k<sizeid.length;k++){
			if(sizeid[k].checked==true){
				flag1=true;
				break;
			}
		}
		if(flag1==false){
			document.getElementById("error5").innerHTML="<span class='red'>Choose at least one size !</span>"
			return false;				
		}else{
			document.getElementById("error5").innerHTML="&nbsp;";
		}
		
		var flag=false;
		for(var i=0;i<sizeprices.length;i++){
				if(sizeprices[i].value!=""){
					if(!IsNumeric(sizeprices[i].value)){
						flag=true;
						break;
					}
					sizeid[i].checked=true
				}
		}
		if(flag==true){
			document.getElementById("error5").innerHTML="<span class='red'>Only numeric value are allowed for additional prices !</span>"
			return false;				
		}else{
			document.getElementById("error5").innerHTML="&nbsp;";
		}
		var flag2=false;
		var colorsid=document.getElementsByName("color[]");
		var imageval=document.getElementsByName("inputval[]");
		var imageupload=document.getElementsByName("imageupload[]");
		for(var m=0;m<colorsid.length;m++){
			if(colorsid[m].checked==true ){
				if(imageval[m].value=="" && imageupload[m].value==""){
					alert("Upload Image");
					return false;
				}else{
					if(imageval[m]!=""){
						return true;
					}
						if(extensioncheck(imageval[m].value)==false){
							return false;
						}else{
							return true;
						}
					
				}
				flag2=true;
				//break;
			}
		}
		if(flag2==false){
			document.getElementById("error6").innerHTML="<span class='red'>Choose at least one color with image for uploading !</span>"
			return false;
		}else{
			document.getElementById("error6").innerHTML="&nbsp;";
		}
		
		return true;
	}
	
	 function trim(str) { return str.replace(/^\s+|\s+$/, ''); };

	function extensioncheck(val){
		var ext=new Array("jpg","peg","jpeg","gif","png");
		var filelength = parseInt(val.length) - 3;
		var fileext = val.substring(filelength,filelength + 4);
		
		for(var i=0;i<ext.length;i++){
			if(ext[i]==fileext){
				return true;
			}
		}
		//alert("Only 'jpg','peg','jpeg','gif','png' Images are Allowed");
		return false;
	}		
	
	function showcat(catid,pid,catids){
		
			var mycatids=catid.split("~");
			for(var i=0;i<mycatids.length;i++){
				var ids="disp_"+mycatids[i];
				var myimage="images_"+pid+"_"+catids;
				var myimage2="images_"+pid+"_"+catids;
				if(document.getElementById(ids)){
					if(document.getElementById(ids).style.display=="none"){
						document.getElementById(ids).style.display="block";
						if(document.getElementById(myimage)){
							document.getElementById(myimage).src="../images/minus.gif";
						}
					}else{
						document.getElementById(ids).style.display="none";
						if(document.getElementById(myimage)){
							document.getElementById(myimage).src="../images/plus.gif";
						}
						if(document.getElementById(myimage2)){
							document.getElementById(myimage2).src="../images/plus.gif";
						}
					}
				}
			}
	}