﻿ // JScript File
function Elem(val)
{
	return document.getElementById(val);
}//

function SetTextBoxMaxLength(obj,objtextlength)
{ 
	if(Elem(obj.id).value=='')
	{
	
	}
	if (obj.value.length > objtextlength) 
	{
		alert('The maximum input length is '+ objtextlength +' character.' );
		obj.focus();
		return false;
	}
 }//
 
function onkeyPressContainerNumber(e,obj) 
  { 
  if(Elem(obj.id).value.length<=3)
  {
	  if (e.keyCode > 64 && e.keyCode < 91 || e.keyCode > 96 && e.keyCode < 123) 
		   return true;
	   else
		   return false;
  }
  else
  {
   if ((e.keyCode > 31 && e.keyCode < 48) 
		|| (e.keyCode > 57 && e.keyCode < 65) 
		|| (e.keyCode > 90 && e.keyCode < 97)
		|| (e.keyCode > 64 && e.keyCode < 91)
		|| (e.keyCode > 96 && e.keyCode < 127))
			{
				e.returnValue = false;
			}
	   else
			{
				if(Elem(obj.id).value.length<=10)
				  {
					return true;
				  }
				else if(Elem(obj.id).value.length==11)
				  {
					return false;
				  }
			}
	}
	
	 return false;
  }//
  
function onKeyPressNumeric(e,obj)
 {
		if ((e.keyCode > 31 && e.keyCode < 48) 
		|| (e.keyCode > 57 && e.keyCode < 65) 
		|| (e.keyCode > 90 && e.keyCode < 97)
		|| (e.keyCode > 64 && e.keyCode < 91)
		|| (e.keyCode > 96 && e.keyCode < 127))
			
			{
				alert("Please enter only numeric value.");
				e.returnValue = false;
			}
 }//
 
function UpperkeyStroke(con) 
{
	Elem(con.id).value=  Elem(con.id).value.toUpperCase();
}

function j_trim(s) 
{
	var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	s = (m == null) ? '' : m[1];
	return s;
}

function j_is_text(s)
{
	//for other datatype
	return true;
}

function j_is_Other(s)
{
	//for other datatype
	return true;
}

function j_is_Integer(s)
{
	//s = trim(s);
	if (s.length > 0)
	{
		var slen = s.length;
		var chr;
		
		for (var i = 0; i < slen; i++)
		{
			chr = s.substring(i,i+1);
			if (i==0)
			{
				if (chr != '+' && chr != '-')
				{
					if (chr < '0' || chr > '9') return false;
				}
				else
				{
					if (slen == 1) return false; 
				}
			}
			else
			{ 
				if (chr < '0' || chr > '9')
				{
					return false;
				}
			}
		}
	}
	return true;
}

function j_is_Decimal(s)
{
	//s = trim(s);
	if (s.length > 0) 
	{
		var decimal_pos = s.lastIndexOf('.');
		var decimal_pos_next;
		
		if ((decimal_pos != -1) && (decimal_pos != 0))
		{
			var decimal_pos_next = s.lastIndexOf('.',decimal_pos - 1);
			if  (decimal_pos_next != -1)
				return false; /*invalid if two dots*/
		}
		
		var slen = s.length;
		var chr;
		
		for (var i = 0; i <= (slen-1); i++)
		{
			chr = s.substring(i, i+1);
			
			if ((chr == '.') && ((slen == 1) || (i == slen - 1)))
				return false; /*position of the dot*/

			if (i==0)
			{
				if (chr != '+' && chr != '-' && chr != '.')
				{
					if (chr < '0' || chr > '9') return false;
				}
				else
				{
					if (slen == 1 ) return false; 
				}
			}
			else
			{
				if ((chr < '0' || chr > '9') && (chr != '.'))
					return false; /*other than 0-9 or .*/
			}
		}
	}	
	return true;
}

/*~check the validity of date for specified format~*/
function j_is_Date(s)
{
	//s = trim(s)
	
	var sDateFormat='mm/dd/yyyy'; /* dd/mm/yy and dd/mm/yyyy*/
	var cSep = '/' /*default*/
	var arrDate 
	arrDate = new Array(); 
	
	//if(s.length ==0)  return true;
	if(s.length < 5) return false;
	//For years in the range '1970-1999'  should be entered as four char length strings 
	//For years in the range '2000-2099'  can be entered as 1-2 char length strings
 
	var mm=0, dd=1, yyyy=2
	var sDate, sMonth,sYear;
	if (arguments.length>1) 
	{
		sDateFormat=arguments[1];
		if (sDateFormat.toLowerCase()=='dd/mm/yyyy') 
		{
			dd=0; mm=1; yyyy=2; 
		}
	}			
	arrDate=s.split(cSep);
	if(arrDate)
	{
		if (arrDate.length < 3 || arrDate.length > 3)
			return false;
	}
	else
		return false;
	if(arrDate[mm].length==0 || arrDate[dd].length==0 || arrDate[yyyy].length==0 || arrDate[mm].length>2 || arrDate[dd].length>2 || arrDate[yyyy].length>4)	
		return false;
	if (arrDate[mm]>12 || arrDate[mm]<1 || arrDate[dd]>31 || arrDate[dd]< 1 )
		return false;
	sMonth = parseInt(arrDate[mm],10);
	sDate = parseInt(arrDate[dd],10);
	sYear = parseInt(arrDate[yyyy],10);
	if(sYear>=0 && sYear<=99) sYear=sYear+ 2000;	
	if(sYear<= 0) return false; 
	if(isNaN(sMonth) || isNaN(sDate) || isNaN(sYear)) return false;
	if ((sMonth == 4 || sMonth == 6 || sMonth == 9 || sMonth == 11 )&&(sDate > 30))
		return false;
	if ((sMonth == 1 || sMonth == 3 || sMonth == 5 || sMonth == 7 || sMonth == 8 || sMonth == 10 || sMonth == 12)&&(sDate > 31))
		return false;
	var by_4 = sYear%4; 
	var by_400 = sYear%400;
	var by_100 = sYear%100;
	var isLeap
	if (((by_4 == 0 && (by_100 == 0)))|| (by_400 == 0))
		isLeap = true;
	else
		isLeap = false;  
	 
	if (!isLeap && sMonth == 2 && sDate > 28)
		return false;
 return true;  
}

/*~time validation in 12:39 am (hour:minute) format~*/
function j_is_Time(s)
{
	s=trim(s)
	if(s=='') return true;
	if (s.indexOf(':') == -1 )
		return false;
	var hourminute=s.split(':');
 
	if (hourminute.length > 2)
		return false;
  
	if (isNaN(hourminute[0]))
		return false;
	
	if (!( (parseInt(hourminute[0],10)>=1 ) && ( parseInt(hourminute[0],10)<=12) ) )
		return false;
  
	if (hourminute[1].indexOf(' ') == -1 )
		hourminute[1] += ' AM';

	var minutemeredium=hourminute[1].split(' ');	 
	if (isNaN(minutemeredium[0]))
		return false;
	
	if (!( (parseInt(minutemeredium[0])>=0 ) && ( parseInt(minutemeredium[0])<=59) ) )
		return false;
 
	if ((minutemeredium[1].toUpperCase() != 'AM') && (minutemeredium[1].toUpperCase() != 'PM') )
		return false;
 return true;
}

function j_is_Datetime(s)
{
	//TBC - Need to implement this validation
	return true;
}

/*anything but blank space*/
function j_is_string(s)
{
if (s.length > 0)
	{
		var slen = s.length;
		var chr;
		for (var i = 0; i < slen; i++)
		{
			chr = s.substring(i,i+1);
			if (chr >= 0 || chr <= 9)
			return false;
		}
		return true;
	}
	else
	return true;
}
function j_is_Phone(s)
{
	var pat = /^\d{3}(\S)?[\d{3}](\S)[\d{4}]+$/; 
	
	if (s.length > 0) 
	{
		var matchArr = s.match(pat);
		if(matchArr==null)
			return false;
	}
	return true;
}

/*~check the validity of email id~*/
function j_is_Email(s)
{
	//s = trim(s);
	var pat = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 
	
	if (s.length > 0) 
	{
		var matchArr = s.match(pat);
		if(matchArr==null)
			return false;
	}
	return true;
} 
function j_is_Currency(s)
{
	//s = trim(s);
	var pat = /^[$]?\d{1,10}([.]\d{2})?$/; 
	
	if (s.length > 0) 
	{
		var matchArr = s.match(pat);
		if(matchArr==null)
			return false;
	}
	return true;
}
/*~check the validity of zip~*/
function j_is_Zip(s)
{
	//s = trim(s);
	if (s.length > 0) 
	{
		var chr;
		for (var i=0;i<s.length;i++)
		{
			var chr = s.charAt(i);
			if(chr == '-' && i == 0)
				return false;
			if (chr == '-' || chr == ' ' || (chr >='0' && chr <='9' ) || (chr >='A' && chr <='Z' ) || (chr >='a' && chr <='z' )) 
			;
			else
				return false;
		}	
	}
	return true;
}
//CUSTOME FUNCTION
function j_validate_element(elem, call_onchnage)
{
	var is_req = false;
	var dt = "Other"; //Default datatype is string //0=String, 1=Integer, 2=Decimal, 3=Date, 4=Time, 5=DateTime, 6=Other
	var dp = "&Not"; //Default decimal place 2
//	var cap = j_get_caption(elem);
	var cap="Field";
	if (elem.getAttribute('Message')) cap = elem.getAttribute('Message');
	if (elem.getAttribute('DataType')) dt = elem.getAttribute('DataType');
	if (elem.getAttribute('NotValue')) dp = elem.getAttribute('NotValue');
	if (elem.getAttribute('Required')) is_req = (elem.getAttribute('Required') == '1');
	
	var elemValue = j_trim(elem.value);
	var maxLen;	
	
	//TBC: needs to be cross-checked		
	if(elem.type=='textarea')
	{
		if(elem.getAttribute('maxlength'))
		{
			maxLen = elem.getAttribute('maxlength');
			if(elemValue.length > maxLen)
			{
				alert('Text too long. Only ' + maxLen + ' chars are allowed.');
				return false;	
			}	
		}
	}
	
	if (is_req)
	{
		if((elem.type=='text'||elem.type=='textarea'||elem.type=='select'||elem.type=='select-one' ||elem.type=='password') && elemValue.length == 0)
		{
			alert('Please Enter '+cap+'.');
			elem.focus();
			return false; //Return element index
		}		    
	}
	
	if(elemValue.length > 0)
	{
		if(!(eval("j_is_" + dt + "(elemValue)")))
		{
			//alert(elemValue + "," + elem.id + "," + dt);
			alert(cap + " should be valid " + dt.toLowerCase() + ".");
			elem.focus();
			return false; //Return element index
		}
	}
	
	if (dp!="&Not")
	{
		if((elem.type=='text'||elem.type=='textarea'||elem.type=='select'||elem.type=='select-one'))
		{		
			
			if (dp==elemValue)
			{
				alert('Please Select '+cap+'.');
				elem.focus();
				return false;
			 
			}
		}
	}
	
	return true;
}
function j_validate_form()
{
	var objFrm       = document.forms[0];
	var retVal = objFrm.elements.length;
	
	for(var i=0;i<objFrm.elements.length;i++)
	{
		var elem=objFrm.elements[i];
		
		if (elem.type=='text'||elem.type=='textarea'||elem.type=='select'||elem.type=='select-one' ||elem.type=='password')
		{
			if (!j_validate_element(elem, true))
			{
				//alert(i);
				//alert(elem.id);
				return false;
			}
		}
	}
	return -1;
}
 function CallConfirm()
{
  return confirm("Do you want to delete this record?");
}
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_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_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];}
}
function ValidateForm()
{
if(Elem("txtCompanyName").value=="")
	   {
		alert("Please enter Company Title.");
		Elem("txtCompanyName").focus()
		return false;
	   }
	 if(Elem("txtCompanyReviewTitle").value=="")
	   {
		alert("Please enter Company Review Title.");
		Elem("txtCompanyReviewTitle").focus()
		return false;
	   }  
	if(Elem("txtCompanyMetaTagName").value=="")
	   {
		alert("Please enter Company MetaTag Name.");
		Elem("txtCompanyMetaTagName").focus()
		return false;
	   }
	   if(Elem("txtRank").value=="")
	   {
		alert("Please enter Company Rank.");
		Elem("txtRank").focus()
		return false;
	   }
	   if(Elem("txtWebsite").value=="")
	   {
		alert("Please enter Website Name.");
		Elem("txtWebsite").focus()
		return false;
	   }
	   if(Elem("txtLocation").value=="")
	   {
		alert("Please enter Location.");
		Elem("txtLocation").focus()
		return false;
	   }
	   if(Elem("txtYearFounded").value=="")
	   {
		alert("Please enter Year Founded.");
		Elem("txtYearFounded").focus()
		return false;
	   }
	   if(Elem("txtTarget").value=="")
	   {
		alert("Please enter Target.");
		Elem("txtTarget").focus()
		return false;
	   }
	  if(Elem("rbtRank1").checked==false && Elem("rbtRank2").checked==false && Elem("rbtRank3").checked==false && Elem("rbtRank4").checked==false && Elem("rbtRank5").checked==false)
	  {
		alert("Please select an option for overall rating.");
		return false;
	  } 
	  if(Elem("rbtStatus_0").checked==false && Elem("rbtStatus_1").checked==false)
	  {
		alert("Please select an option for Status.");
		return false;
	  } 
	  
	   if(Elem("rbtPhoneSupport_0").checked==false && Elem("rbtPhoneSupport_1").checked==false)
	  {
		 alert("Please select an option for phone support.");
		return false;
	  } 
	  
	   if(Elem("rbtEmailSupport_0").checked==false && Elem("rbtEmailSupport_1").checked==false)
	  {
		 alert("Please select an option for Email support.");
		return false;
	  } 
	  
	   if(Elem("rbtLiveChat_0").checked==false && Elem("rbtLiveChat_1").checked==false)
	  {
		 alert("Please select an option for Live Chating.");
		return false;
	  } 
	
}//
function SearchResultsOnKeyPress()
 {
	if (event.keyCode == 13)
	 {
		event.returnValue=false;
		event.cancel = true;
			
		// submit the form 
		Elem("btnLogIn").click();
	 }
 }//
 
 function SetFocus()
  {
	Elem("btnLogIn").focus();
  }
  
  function textCounter(field,counter,maxlimit,linecounter)
 {
	// text width//
	var fieldWidth =  parseInt(field.offsetWidth);
	var charcnt = field.value.length;        

	// trim the extra text
	if (charcnt > maxlimit) { 
		field.value = field.value.substring(0, maxlimit);
	}

	else { 
	// progress bar percentage
	var percentage = parseInt(100 - (( maxlimit - charcnt) * 100)/maxlimit) ;
	document.getElementById(counter).style.width =  parseInt((fieldWidth*percentage)/100)+"px";
	document.getElementById(counter).innerHTML="Limit: "+percentage+"%"
	// color correction on style from CCFFF -> CC0000
	setcolor(document.getElementById(counter),percentage,"background-color");
	}
}

function setcolor(obj,percentage,prop)
{
	obj.style[prop] = "rgb(80%,"+(100-percentage)+"%,"+(100-percentage)+"%)";
}

function ValidatePrivacyPolicy()
{
	 if(Elem("txtPrivacyPolicies").value=="")
	   {
		alert("The Privacy Policies can't be blank.");
		Elem("txtPrivacyPolicies").focus()
		return false;
	   }
}

function ValidateQADetails()
{
	 if(Elem("txtQADetails").value=="")
	   {
		alert("The Q & A details can't be blank.");
		Elem("txtQADetails").focus()
		return false;
	   }
}
function ValidateCriteriaDetails()
{
	 if(Elem("txtCriteriaDetails").value=="")
	   {
		alert("The Criteria details can't be blank.");
		Elem("txtCriteriaDetails").focus()
		return false;
	   }
}
function ValidateAboutUsDetails()
{
	 if(Elem("txtAboutUsDetails").value=="")
	   {
		alert("The About Us details can't be blank.");
		Elem("txtAboutUsDetails").focus()
		return false;
	   }
}

function ValidateEmailtipsDetails()
{
	 if(Elem("txtEmailtipsDetails").value=="")
	   {
		alert("The Email tips details can't be blank.");
		Elem("txtEmailtipsDetails").focus()
		return false;
	   }
}