<!--
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];}
}
//-->
//Delcare variable for browser
var isNav, isIE;
var ieall="";
var sty="";
var imageext	=	new Array(".gif",".jpg",".jpeg")

//Browser checking
if(parseInt(navigator.appVersion)>=4)
   {
   if(navigator.appName=="Netscape") {
      isNav=true;
   }
   else {
      isIE=true;
      var ieall="all.";
	  var sty=".style";
	  }
   }
   	  

function len(str) {
	return String(str).length;  
}


function left(str, n)
{
        if (n <= 0)     // Invalid bound, return blank string
                return "";
        else if (n > String(str).length)   // Invalid bound, return
                return str;                // entire string
        else 		// Valid bound, return appropriate substring
                return String(str).substring(0,n);
}


function right(str, n)
{
        if (n <= 0)     // Invalid bound, return blank string
           return "";
        else if (n > String(str).length)   // Invalid bound, return
           return str;                     // entire string
        else { 		// Valid bound, return appropriate substring
           var iLen = String(str).length;
           return String(str).substring(iLen, iLen - n);
        }
}

function mid(str, start, len)
{
        // Make sure start and len are within proper bounds
        if (start < 0 || len < 0) return "";

        var iEnd, iLen = String(str).length;
        if (start + len > iLen)
                iEnd = iLen;
        else
                iEnd = start + len;

        return String(str).substring(start,iEnd);
}

function ltrim(str)
/***
        PURPOSE: Remove leading blanks from string.
***/
{
        var whitespace = new String(" \t\n\r");
        var s = new String(str);
        if (whitespace.indexOf(s.charAt(0)) != -1) {
            var j=0, i = s.length;
            while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
                j++;
            s = s.substring(j, i);
        }
        return s;
}

function rtrim(str)
/***
        PURPOSE: Remove trailing blanks from our string.
***/
{
        var whitespace = new String(" \t\n\r");
        var s = new String(str);
        if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
            var i = s.length - 1;       // Get length of string
            while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
                i--;
            s = s.substring(0, i+1);
        }
        return s;
}

function trim(str)
/***
        PURPOSE: Remove trailing and leading blanks from our string.
***/
{
        return rtrim(ltrim(str));
}


function SetStatus(strMesg) { 
	self.status = strMesg
} 



function IsChecked(objWord, strErrorMesg)
{
	if (objWord.checked==false)
	{
		alert(strErrorMesg);
		objWord.focus();
		return false;

	}
	else
	{
		return true;
	}
}


//function for Empty Checking with alert message
function IsEmpty(objWord,strErrorMesg) {
        var blnIsEmpty = true;	
	var blnObjectPrm=false;
	var i=0;	
	var strWord='';
	var objThis;

	if (isIE)
		blnObjectPrm = (typeof(objWord)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objWord;
		strWord=objWord.value;
	}
	else {
		if (objWord.substring(0,8)=='document') {
			objThis =eval(objWord); 
			strWord=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strWord=objWord;
	}

	while(i<strWord.length && blnIsEmpty) {
		if (strWord.charAt(i)!=' ')
			blnIsEmpty=false;
		i++;
  	}
	if (blnIsEmpty && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) {
			//objThis.select();
			objThis.focus();
		}
	}
	return blnIsEmpty;
}


//Confirm Passswords

function IsConfirmPassword(objWordInit,objWordFinal,strErrorMesg)
{
	if(objWordInit.value!=objWordFinal.value)
	{
		alert(strErrorMesg);
		//objWordFinal.select();
		objWordFinal.focus();
		return false;
	}	
	else
	{
		return true;
	}				
}

//function for Email Checking 
function IsEmailAddress(objEmail,strErrorMesg) {
        var blnIsEmailAddress = true;	
	var blnObjectPrm=false;
	var i=0;	
	var strEmail='';
	var objThis;

	if (isIE)
		blnObjectPrm = (typeof(objEmail)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objEmail;
		strEmail=objEmail.value;
	}
	else {
		if (objEmail.substring(0,8)=='document') {
			objThis =eval(objEmail); 
			strEmail=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strEmail=objEmail;
	}

blnIsEmailAddress=(strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)!=-1);
	if (!blnIsEmailAddress && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) {
			//objThis.select();
			objThis.focus();		
		}
	}
	return blnIsEmailAddress;
}

//function for Positive and Negative numeric Checking
function IsNumeric(objNumber,strErrorMesg) {
	var blnIsNumeric = true;	
	var blnObjectPrm=false;
	var i=0;	
	var strNumber='';
	var objThis;
	var digits="0123456789,";
	var temp;

	if (isIE)
		blnObjectPrm = (typeof(objNumber)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objNumber;
		strNumber=objNumber.value;
	}
	else {
		if (objNumber.substring(0,8)=='document') {
			objThis =eval(objNumber); 
			strNumber=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strNumber=objNumber;
	}	

	for (var i=0;i<strNumber.length;i++) {
		temp=strNumber.substring(i,i+1)
		if (digits.indexOf(temp)==-1) {
			blnIsNumeric=false;
	    }
	}
	if (!blnIsNumeric && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) { 
			//objThis.select(); 
			objThis.focus(); 		
		}
	}
	return blnIsNumeric;
}

//function for Positive Numerber Checking
function IsPositiveNumber(objNumber,strErrorMesg)
{
	var blnIsPositiveNumber = true;	
	var blnObjectPrm=false;
	var strNumber='';
	var objThis;

	if (isIE)
		blnObjectPrm = (typeof(objNumber)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objNumber;
		strNumber=objNumber.value;
	}
	else {
		if (objNumber.substring(0,8)=='document') {
			objThis =eval(objNumber); 
			strNumber=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strNumber=objNumber;
	}	

	if(isNaN(strNumber)) {
		blnIsPositiveNumber=false;
	}
	else if(strNumber<=0) {
		blnIsPositiveNumber=false;
	}
	else {
		 blnIsPositiveNumber = true; 
	}
	if (!blnIsPositiveNumber && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) { 
			//objThis.select();
			objThis.focus();		
		}
	}
	return blnIsPositiveNumber;
}

//function for Numeric and no blank Checking
function IsNumericNoBlank(objNumber,strErrorMesg) {
	blnIsNumericNoBlank = !IsEmpty(objNumber,strErrorMesg);
	if (blnIsNumericNoBlank)
		blnIsNumericNoBlank = IsPositiveNumber(objNumber,strErrorMesg)
	return blnIsNumericNoBlank;
}



// checks for only alphabets
function IsAlpha(objString,strErrorMesg) {
	var blnIsAlpha = true;
	var blnObjectPrm=false;
	var i=0;	
	var strString='';
	var objThis;
	if (isIE)
		blnObjectPrm = (typeof(objString)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objString;
		strString=objString.value;
	}
	else {
		if (objString.substring(0,8)=='document') {
			objThis =eval(objString); 
			strString=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strString=objString;
	}

	if(strString.length>0) {
		var strAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz";
 		for (i = 0; i<strString.length && blnIsAlpha; i++) { 
			if (strAlpha.indexOf(strString.charAt(i)) == -1) 
				blnIsAlpha=false;
			alert(strErrorMesg);
		}
	}
	if (!blnIsAlpha && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) { 
			//objThis.select();
			objThis.focus();		
		}
	}
      	return blnIsAlpha;
}

//Check valid characters 
function IsCharacter(objString,strErrorMesg) {
	var blnIsAlpha = true;
	var blnObjectPrm=false;
	var i=0;	
	var strString='';
	var objThis;
	if (isIE)
		blnObjectPrm = (typeof(objString)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objString;
		strString=objString.value;
	}
	else {
		if (objString.substring(0,8)=='document') {
			objThis =eval(objString); 
			strString=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strString=objString;
	}

	if(strString.length>0) {
		var strAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz0123456789,.';:_+|\@`";
 		for (i = 0; i<strString.length && blnIsAlpha; i++) { 
			if (strAlpha.indexOf(strString.charAt(i)) == -1) 
				blnIsAlpha=false;
			
		}
	}
	
	
	
	if (!blnIsAlpha && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) { 
			//objThis.select();
			objThis.focus();		
		}
	}
      	return blnIsAlpha;
}
//function for No Space Checking
function IsContainsSpace(objWord,strErrorMesg) {
	var blnIsContainsSpace = false;
	var blnObjectPrm=false;
	var i=0;	
	var strWord='';
	var objThis;

	if (isIE)
		blnObjectPrm = (typeof(objWord)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objWord;
		strWord=objWord.value;
	}
	else {
		if (objWord.substring(0,8)=='document') {
			objThis =eval(objWord); 
			strWord=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strWord=objWord;
	}

	while(i<strWord.length && (!blnIsContainsSpace)) { 
		if (strWord.charAt(i)==' ') { 
			blnIsContainsSpace=true;
		}
		i++;
	}	
	if (blnIsContainsSpace && strErrorMesg!='')
	{
		alert(strErrorMesg);
		objWord.select(); 
			objWord.focus();
			
		if (blnObjectPrm) { 
			objThis.select(); 
			objThis.focus(); 		
		}
	}

	return blnIsContainsSpace;
}

//function for Password Checking
function IsValidPassword(objPassword,intMinLength,intMaxLength,strLabelName)
{
    var blnIsValidPassword = true;	
	var blnObjectPrm = false;
	var strPassword='';
	var objThis;
	if (strLabelName=='')
		strLabelName='Password';
	if (isIE)
		blnObjectPrm = (typeof(objPassword)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objPassword;
		strPassword=objPassword.value;
	}
	else {
		if (objPassword.substring(0,8)=='document') {
			objThis =eval(objPassword); 
			strPassword=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strPassword=objPassword;
	}
	var strErrorMesg = ""
	if (strPassword.value=="" && intMinLength==0)
		strErrorMesg = "Please enter the "+strLabelName;
	else if(IsContainsSpace(strPassword))
		strErrorMesg = strLabelName+" should not contain Spaces.";
	else if(strPassword.length < intMinLength)
		strErrorMesg = strLabelName+" Should be atleast " + intMinLength + " characters";
	else if(strPassword.length > intMaxLength)
		strErrorMesg = strLabelName+" Should be maximum " + intMaxLength + " characters";
	if (strErrorMesg)
	{
		blnIsValidPassword = false;
		alert(strErrorMesg);
		if (blnObjectPrm) { 
			objThis.select(); 
			objThis.focus(); 		
		}
	}
	return blnIsValidPassword;
}


//function for checking the string length with the parameter passed
function IsLengthGreater(objString, intMaxLength,strErrorMesg)
{
	var blnIsLengthGreater = false;
	var blnObjectPrm=false;
	var i=0;	
	var strString='';
	var objThis;
	if (isIE)
		blnObjectPrm = (typeof(objString)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objString;
		strString=objString.value;
	}
	else {
		if (objString.substring(0,8)=='document') {
			objThis =eval(objString); 
			strString=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strString=objString;
	}

	if(strString.length>intMaxLength)
		blnIsLengthGreater=true;
	if (blnIsLengthGreater && strErrorMesg!='') {
		alert(strErrorMesg);
		if (blnObjectPrm) { 
			objThis.select(); 
			objThis.focus(); 		
		}
	}
	return blnIsLengthGreater;
}










function IsLengthless(objString,intMaxLength,intMaxLength2,strErrorMesg)
{
	var blnIsLengthGreater = false;
	var blnObjectPrm=false;
	var i=0;	
	var strString='';
	var objThis;
	if (isIE)
		blnObjectPrm = (typeof(objString)=='object'?true:false) ; 

	if (blnObjectPrm) {
		objThis = objString;
		strString=objString.value;
	}
	else {
		if (objString.substring(0,8)=='document') {
			objThis =eval(objString); 
			strString=objThis.value;
			blnObjectPrm = true; 
		}
		else
			strString=objString;
	}

	if(strString.length<intMaxLength || strString.length>intMaxLength2)
		blnIsLengthGreater=true;
	if (blnIsLengthGreater && strErrorMesg!='') {
		alert(strErrorMesg);
		objString.focus();
		return false;
		if (blnObjectPrm) { 
			objThis.select(); 
			objThis.focus(); 		
		}
	}
	return true;
	return blnIsLengthGreater;
}
















//function for reset the value of form's fields
function InitializeFormObject(FormName){
var vFormObj=eval("document."+FormName)
  for(i=0; i<vFormObj.elements.length; i++) {
	if ((vFormObj.elements[i].type=="text") || (vFormObj.elements[i].type=="password") || 
            (vFormObj.elements[i].type=="textarea"))
	{
		vFormObj.elements[i].value="";
	}
	else if(vFormObj.elements[i].type=="checkbox")
	{
		vFormObj.elements[i].checked=false;
	}
}

//function for checking object visibility
function IsObjectVisible(objName) {
 	return (eval("document."+ieall+objName+sty).visibility=="visible")
}


//function to make visible, hidden object
function ShowMe(objName)	
{
	eval("document."+ieall+objName+sty).visibility="visible";
	return;
}

//function to make hidden, visible object
function HideMe(objName) 
{
	eval("document."+ieall+ObjName+sty).visibility="hidden";
	return;
}

//function for show Frame
function ShowFrame(objFrameName,cur)	
{
	var intClientWidth = window.screen.availWidth;
	var intFrameTop	= 15;
	var intDifference = 0;
	for (var _x=1; _x < cur; _x++)
	{
		intFrameTop += eval("app"+_x).offsetHeight;
	}
	var objFrame=eval("document."+ieall+objFrameName+sty);
	objFrame.visibility = "visible";
	difference = (intClientWidth - objFrame.width.substring(0,objFrame.width.length-2)) / 2;
	objFrame.top = intFrameTop
	objFrame.left = intDifference
}


//**************** function for Validation message change ***************

function MM_findObj(n, d) { //v3.0
  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); return x;
}

function MM_setTextOfLayer(objName,x,newText) { //v3.0
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (navigator.appName=='Netscape') {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
return;
}

//function for Change InnerHTML of Opener Window
function ChangeHtml(SpanName,NewText)	{
	var showChangeHtml=eval("window.opener.document."+ieall+SpanName);
	showChangeHtml.innerHTML=NewText;
	return;
	}

//function for Change InnerHTML of Frame Window
function ChangeFrameHtml(SpanName,NewText)	{
	var showChangeHtml=eval("window.top.document."+ieall+SpanName);
	showChangeHtml.innerHTML=NewText;
	return;
	}

//function for Image Checking
function CheckImage(checkFile)
{
 stat = false
	if((checkFile.indexOf(".gif")>0) || (checkFile.indexOf(".jpg")>0) || (checkFile.indexOf(".bmp")>0))
	{
		stat=true
	}
  return stat;
}


//function for show Frame
function SetFrame(ActWidth,ActHeight,FrameID,FrameUrl)
{

	var FramePath=eval("window."+FrameID+".location");
	var theIFrame=eval("document.all."+FrameID+".style")

	if(FramePath.pathname.indexOf(".htm")>-1)
	{
		var CurWidth, CurHeight //variable for store the value of width and height of current resulotion

		if(isNav)
		{ //checking brower is netscape
			CurWidth=parseInt((window.innerWidth-ActWidth)/2);
			CurHeight=parseInt((window.innerHeight-ActHeight)/2);
		}
		else
		{
			CurWidth=parseInt((window.screen.availWidth-ActWidth)/2);
			CurHeight=parseInt((window.screen.availHeight-ActHeight)/2);
		}
		theIFrame.left=CurWidth;
		theIFrame.top=CurHeight;
		FramePath.href=FrameUrl;
		//alert(FrameUrl);
	}
	theIFrame.visibility='visible';	
}

//function for show Frame
function ChangeFrameUrl(FrameID,FrameUrl)
{
	var FramePath=eval("window."+FrameID+".location");
	var theIFrame=eval("document.all."+FrameID+".style")
	FramePath.href=FrameUrl;
	theIFrame.visibility='visible';	
}
//function for hide Frame
function HideFrame(pFrameId)
{

	if(ClickValue.innerHTML=="0")
	{
		var theIFrame=eval("document.all."+pFrameId+".style");
		theIFrame.visibility='hidden';
	}
	ClickValue.innerHTML="0";
}


//function for open new window accoring to resulotion
function OpenWindow(FileName, WinName, WinWidth, WinHeight, ScrollVal)
{
var CurWidth, CurHeight //variable for store the value of width and height of current resulotion

if(isNav){ //checking brower is netscape
	CurWidth=window.innerWidth;
	CurHeight=window.innerHeight;}
else{
	CurWidth=window.screen.availWidth-16;
	CurHeight=window.screen.availHeight-20;}

if (CurWidth>800){ //checking current resulotion greater than 800
	WinWidth=Math.round(((CurWidth-800)*WinWidth/800)+WinWidth)  //setting window width with perpotion  to the more that 800*600 resolution
	//WinHeight=Math.round(((CurHeight-600)*WinHeight/600)+WinHeight) //setting window height with perpotion  to the more that 800*600 resolution
	}

var WinTop, WinLeft //variable for store the value of top and left of current resulotion

WinLeft=Math.round((CurWidth-WinWidth)/2);
WinTop=Math.round((CurHeight-WinHeight)/2);

	new_window=open(FileName,WinName,"'toolbar=no, directories=no, menubar=no, scrollbars="+ScrollVal+", width="+WinWidth+", height="+WinHeight+", Left="+WinLeft+", Top="+WinTop+"'");
	new_window.blur();
	new_window.focus();
}

//function for open new window accoring to parameter send
function FixedTopWindow(FileName, WinName, WinWidth, WinHeight, WinLeft, WinTop, ScrollVal)
{
var CurWidth, CurHeight //variable for store the value of width and height of current resulotion

if(isNav){ //checking brower is netscape
	CurWidth=window.innerWidth;
	CurHeight=window.innerHeight;}
else{
	CurWidth=window.screen.availWidth-16;
	CurHeight=window.screen.availHeight-20;}

if (CurWidth>800){ //checking current resulotion greater than 800
	WinWidth=Math.round(((CurWidth-800)*WinWidth/800)+WinWidth)  //setting window width with perpotion  to the more that 800*600 resolution
	}
	
if(CurWidth<800)
{
	WinTop= WinTop-24 //setting window height with perpotion  to the more that 800*600 resolution
}
	new_window=open(FileName,WinName,"'toolbar=no, directories=no, menubar=no, scrollbars="+ScrollVal+", width="+WinWidth+", height="+WinHeight+", Left="+WinLeft+", Top="+WinTop+"'");
	new_window.blur();
	new_window.focus();
}

//function for open new window accoring to parameter send
function FullWindow(FileName,WinName,ScrollVal)
{
	Full_window=window.open(FileName,WinName,"fullscreen=1,toolbar=no, directories=no, menubar=no, scrollbars="+ScrollVal);
	Full_window.blur();
	Full_window.focus();
}

//function for back url
function fnBackToUrl(x)
{
	if(window.document.location.href.indexOf("NoHistory")>-1)
		window.document.location.href=x;
	else
		history.back();
}

}

function ChangeQuot(pStrVal)
{
  var vStrVal=pStrVal;
  while(vStrVal.indexOf("&quot;")>=0)
  {
	vStrVal=vStrVal.replace("&quot;","\"");
  }
  return vStrVal;
}


// Functions Start for moving list box item right and left
function movelist(thisobj, i_, thatobj)
{
    if(i_ >= 0 && left(thisobj.options[i_].text,1) != '-') 
    {
		var no   = new Option()
		no.value = thisobj.options[i_].value
		no.text  = thisobj.options[i_].text
		thatobj.options[thatobj.options.length] = no
		thisobj.options[i_].value = ''
		thisobj.options[i_].text = ''
		refresh(thisobj)
    }
}

function refresh(thisobj)
{
   for(var i=0; i<thisobj.options.length; i++)
   {
      if(thisobj.options[i].value == '')
      {
         for(var j=i; j<thisobj.options.length-1; j++)
         {
            thisobj.options[j].value = thisobj.options[j+1].value;
            thisobj.options[j].text = thisobj.options[j+1].text;
         }
         var ln = i;
         break;
      }
   }
   if(ln < thisobj.options.length)
   {
      thisobj.options.length -= 1;
      refresh(thisobj);
   }
}

function moveall(thisobj, thatobj)
{
	for(var j=0; j<thisobj.options.length; j++) 
	{
			allatatime(thisobj, j, thatobj)
	}
	refresh(thisobj)
	return true
}

function allatatime(thisobj, i_, thatobj)
{
    if(i_ >= 0 && left(thisobj.options[i_].text,1) != '-') 
    {
		var no   = new Option()
		no.value = thisobj.options[i_].value
		no.text  = thisobj.options[i_].text
		thatobj.options[thatobj.options.length] = no

		thisobj.options[i_].value = ''
		thisobj.options[i_].text = ''
    }
}

// Functions END for moving list box item right and left

function IsDateFormatOK(strdate,strFormatMask,strErrorMesg) {
	
	if (strFormatMask == 'DD/MM/YYYY')
	{
		if (strdate.length != 10)
		{
			if	(strErrorMesg=='')
				alert('Please enter a valid date in DD/MM/YYYY format');
			else
				alert(strErrorMesg);
			return false;
		}
		var intDay = strdate.substr(0,2);
		var intMonth = strdate.substr(3,2);
		var intYear = strdate.substr(6,4);
		var c = intDay + intMonth + intYear;
	}
	blnFormatMaskOK =  (!isNaN(c) && strdate.substr(2,1)=='/' && strdate.substr(5,1)=='/' && IsDateValid(intDay,intMonth,intYear));
	if (!blnFormatMaskOK && strErrorMesg!='')
		alert(strErrorMesg);	
	return (blnFormatMaskOK);
}

function dategreater(dd,mm,yyyy,dd1,mm1,yyyy1)
{
	var dt = new Date();
	dt.setDate(dd);
	dt.setMonth(mm-1);
	dt.setFullYear(yyyy);
	
	var dt1 = new Date();
	dt1.setDate(dd1);
	dt1.setMonth(mm1-1);
	dt1.setFullYear(yyyy1);
	
	if(dt>=dt1)
	{
		return (false);
	}
	return (true);
}

function IsDateValid(dd,mm,yyyy)
{
	var dt = new Date();
	dt.setMonth(0);
	dt.setDate(1);
	dt.setFullYear(yyyy);
	dt.setMonth(mm-1);
	dt.setDate(dd);
	var dd1=dt.getDate();
	var mm1=dt.getMonth()+1;
	var yyyy1=dt.getFullYear();
	if((dd!=dd1)||(mm!=mm1)||(yyyy!=yyyy1)||(yyyy==-1)||yyyy.length==0)	 {
		return false;
	}
	return true;
}

function fncheckall()
{
	for (i=0; i<document.forms[0].elements.length; i++)
	{
		if(document.forms[0].elements[i].type == "checkbox")
		{
				if(document.forms[0].ckCheck.checked)
				{
					document.forms[0].elements[i].checked = true
				}
				else
				{
					document.forms[0].elements[i].checked = false
				}
		}
	}	
	return false;
}

function OpenWindow(FileName, WinName, WinWidth, WinHeight, ScrollVal)
{
var CurWidth, CurHeight //variable for store the value of width and height of current resulotion

if(isNav){ //checking brower is netscape
	CurWidth=window.innerWidth;
	CurHeight=window.innerHeight;}
else{
	CurWidth=window.screen.availWidth-16;
	CurHeight=window.screen.availHeight-20;}

if (CurWidth>800){ //checking current resulotion greater than 800
	WinWidth=Math.round(((CurWidth-800)*WinWidth/800)+WinWidth)  //setting window width with perpotion  to the more that 800*600 resolution
	//WinHeight=Math.round(((CurHeight-600)*WinHeight/600)+WinHeight) //setting window height with perpotion  to the more that 800*600 resolution
	}

var WinTop, WinLeft //variable for store the value of top and left of current resulotion

WinLeft=Math.round((CurWidth-WinWidth)/2);
WinTop=Math.round((CurHeight-WinHeight)/2);

	new_window=open(FileName,WinName,"'toolbar=no, directories=no, menubar=no, scrollbars="+ScrollVal+", width="+WinWidth+", height="+WinHeight+", Left="+WinLeft+", Top="+WinTop+"'");
	new_window.blur();
	new_window.focus();
}


function OpenWindowMenu(FileName, WinName, WinWidth, WinHeight, ScrollVal)
{
var CurWidth, CurHeight //variable for store the value of width and height of current resulotion

if(isNav){ //checking brower is netscape
	CurWidth=window.innerWidth;
	CurHeight=window.innerHeight;}
else{
	CurWidth=window.screen.availWidth-16;
	CurHeight=window.screen.availHeight-20;}

if (CurWidth>800){ //checking current resulotion greater than 800
	WinWidth=Math.round(((CurWidth-800)*WinWidth/800)+WinWidth)  //setting window width with perpotion  to the more that 800*600 resolution
	//WinHeight=Math.round(((CurHeight-600)*WinHeight/600)+WinHeight) //setting window height with perpotion  to the more that 800*600 resolution
	}

var WinTop, WinLeft //variable for store the value of top and left of current resulotion

WinLeft=Math.round((CurWidth-WinWidth)/2);
WinTop=Math.round((CurHeight-WinHeight)/2);

	new_window=open(FileName,WinName,"'toolbar=no, directories=no, menubar=yes, scrollbars="+ScrollVal+", width="+WinWidth+", height="+WinHeight+", Left="+WinLeft+", Top="+WinTop+"'");
	new_window.blur();
	new_window.focus();
}

function addMore(str)
{
	var vStoreData =	"";
	var vDataError	=	false;
	var vHdFieldVal=	eval("document."+FormName+".hdCount"+str+".value");
	FieldValue	=	new Array();

	for (var x=0;x<vHdFieldVal;x++)
	{
		FieldValue[x]	=	new Array();
		var y 	=	0;
		FieldValue[x][y++]	=	0;
		for (;y<=column.length;y++)
		{
			FieldValue[x][y]	=	eval("document."+FormName+"."+column[(y-1)][0]+str+(x+1)+".value")
			var isEmpty = false;
			if (column[(y-1)][5].length>0)
			{
				isEmpty = eval(column[(y-1)][5]+"('"+FieldValue[x][y]+"')");
			}

			if (isEmpty & FieldValue[x][0]==0)
			{
			 	FieldValue[x][0]	=	column[(y-1)][1];
				vDataError			=	true;
			}
		}

		if(FieldValue[x][0]	==	0)
		{
			FieldValue[x][0]	=	"&nbsp;"
		}
	}

	if (vDataError)
	{
		eval("document."+FormName+".hdCount"+str).value =	eval("document."+FormName+".hdCount"+str).value
		viewDynamic(1,str); 
	}	
	else
	{
	eval("document."+FormName+".hdCount"+str).value =	eval(eval("document."+FormName+".hdCount"+str).value) + 1
		viewDynamic(0,str); 
	}	
}



function removefield(rem,str)
{
	var vStoreData =	"";
	var vDataError	=	false;
	var vHdFieldVal=	eval("document."+FormName+".hdCount"+str+".value");

	FieldValue	=	new Array()
	var z	=	0;
	for (var x=0;x<vHdFieldVal;x++)
	{

		if(eval(x) != eval(rem))
		{
			FieldValue[z]	=	new Array()		
			var y 	=	0;
			FieldValue[z][y++]	=	0;

			for (;y<=column.length;y++)
			{
				FieldValue[z][y]	=	eval("document."+FormName+"."+column[(y-1)][0]+str+(x+1)+".value")
				var isEmpty = false;
			
				if (column[(y-1)][5].length>0)
					isEmpty = eval(column[(y-1)][5]+"('"+FieldValue[z][y]+"')");

				if (isEmpty & FieldValue[z][0]==0)
				{
				 	FieldValue[z][0]	=	column[(y-1)][1];
					vDataError	=	true;
				}
			}

			if(FieldValue[z][0]	==	0)
			{
				FieldValue[z][0]	=	"&nbsp;"
			}
			z++;
		}
	}

		eval("document."+FormName+".hdCount"+str).value = eval(eval("document."+FormName+".hdCount"+str).value) - 1
	viewDynamic(1,str); 
}


function viewDynamic(isAddAllowed,str)
{
	var vStoreData = "<table width='100%' border='0' cellspacing='0' cellpadding='2' id='generateHTML"+str+"'>";

	for (var y=0;y<FieldValue.length;y++)
	{
		vStoreData += "<tr>";
		vStoreData	+=	"<td width='20'>";
		if(FieldValue.length==1 && isAddAllowed==1)
			vStoreData	+=	"&nbsp;"			
		else	
			vStoreData	+=	"<input type='button' class='InputButton' name='add' value='-' onClick = \"removefield("+y+",'"+str+"')\">"


			vStoreData	+=	"</td>";
		for (var x=0;x<column.length;x++)
		{
			vStoreData	+=	"<td  width='140' align='center'><input type='text' class='InputText' size="+column[x][2]+" maxlength="+column[x][3]+" name='"+column[x][0]+str+(y+1)+"' value='"+FieldValue[y][x+1]+"' ";
			if (column[x][6]!='')
				vStoreData	+=	"onFocus = '"+column[x][6]+"'";
			vStoreData	+=	"				 ></td>";
		}
		
		vStoreData	+=	"<td  width='20'>";
		if(isAddAllowed==1 && y==FieldValue.length-1)
		{			
			vStoreData	+=	"<input type='button' class='InputButton' name='add' value='+' onClick=\"addMore('"+str+"');\"></td>";
		}
		else
		{
			vStoreData	+=	"&nbsp;";			
		}	
			vStoreData	+=	"</td>";
						
		vStoreData	+= "<td><span class='MaroonText'>" + FieldValue[y][0] + "</span></td>" 
		vStoreData += "</tr>";			
	}
			
	if(isAddAllowed==0)
	{
		vStoreData  += "<tr>";
		vStoreData	+=	"<td width='20'>";
		vStoreData	+=	"<input type='button' class='InputButton' name='add' value='-' onClick = \"removefield("+y+",'"+str+"')\">"
		vStoreData	+=	"</td>";
		for (var x=0;x<column.length;x++)
		{
			vStoreData	+=	"<td  width='140' align='center'><input type='text' class='InputText' size="+column[x][2]+" maxlength="+column[x][3]+" name='"+column[x][0]+str+(y+1)+"' value='"+column[x][4]+"' ";
			if (column[x][6]!='')
				vStoreData	+=	"onFocus = '"+column[x][6]+"'";
			vStoreData	+=	"				></td>";
		}
		
		vStoreData	+=	"<td  width='20'><input type='button' class='InputButton' name='add' value='+' onClick=\"addMore('"+str+"');\"></td>";

		vStoreData	+= "<td><span class='error1'>&nbsp;</span></td>" 
		vStoreData  += "</tr>";
	}
	
		vStoreData += "</table>";		

		eval("generateHTML"+str).outerHTML	=	vStoreData

	var ctr	=	FieldValue.length
	if (isAddAllowed==0)
	{
		ctr++;
		eval("document."+FormName+"."+column[0][0]+str+ctr+".select()");
		eval("document."+FormName+"."+column[0][0]+str+ctr+".focus()");	
	}
}
	
//function for URL Checking of Multiple Records Generation





function checkimage(str,strErrorMesg) {
	if(str.substring(0,-3) == "gif" || str.substring(0,-4) == "jpeg")
		{
		   return true;
		}
		else
	    {
		alert(strErrorMesg);
		return false;
	    }

		return true;
}


function checkspecialch(objString,strErrorMesg)
{
	 var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
  for (var i = 0; i < objString.value.length; i++) {
  	if (iChars.indexOf(objString.value.charAt(i)) != -1) {
		alert(strErrorMesg);
		objString.select(); 
		objString.focus(); 
		return false;
  	}

	
  }

return true;
}

function checkImageType(str,strErrorMesg) {
	if(str.substring(0,-3) == "jpg" || str.substring(0,-4) == "jpeg") {
		   return true;
	}
	else {
		alert(strErrorMesg);
		return false;
	 }
	return true;
}

function disableKeysForFileInput() {
	var isTabKey = false;
	if (event.keyCode == 9) {
		isTabKey = true;
	} else {
		isTabKey = false;
	}
	return isTabKey;
}

function displayPreview(fileObj, imageElementName) {
	//alert(fileObj.value);
	document.getElementById(imageElementName).src = fileObj.value;
}




function validEmail(email) 
{ 
    if (email == ""){return false;} 
    badStuff = ";:/,' \"\\"; 
     
    for (i=0; i<badStuff.length; i++) 
    { 
        badCheck = badStuff.charAt(i) 
        if (email.indexOf(badCheck,0) != -1){return false;} 
    } 

    posOfAtSign = email.indexOf("@",1) 
     
    if (posOfAtSign == -1){return false;} 

    if (email.indexOf("@",posOfAtSign+1) != -1){return false;} 
    posOfPeriod = email.indexOf(".", posOfAtSign) 
     
    if (posOfPeriod == -1){return false;} 
    if (posOfPeriod+2 > email.length){return false;} 
     
return true; 
} 




function left_chk()
{

		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		
		with(document.formleft)
		{ 	
			if(username.value=='') { errorstr += "- Please enter username.\n"; }
			if (password.value=='') { errorstr += "- Please enter password.\n";}
		}	
		
		if (errorstr != '')
		{
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}
		else
		{
			return true;
		}	
			
}


function left_chknew()
{
var errorstr = '';
var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	
if(document.formleft.username.value== "")
		{
		
		errorstr += "- Please enter your username.\n";
		}
if(document.formleft.password.value== "")
		{
		errorstr += "- Please enter your password.\n";
		}

if (errorstr != '')
		{
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}
else
{
document.formleft.submit();
}
}


function left_chknew1()
{
var errorstr = '';
var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	
if(document.formleft1.username.value== "")
		{
		
		errorstr += "- Please enter your username.\n";
		}
if(document.formleft1.password.value== "")
		{
		errorstr += "- Please enter your password.\n";
		}

if (errorstr != '')
		{
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}
else
{
document.formleft1.submit();
}
}


function chkboxes()
{
	var errorstr = '';
	var oneischecked=false;
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	with(document.form_orders)
	{ 	
			for(i=0;i<elements.length;i++)
			{
				var e = elements[i];
				if (e.name == "order_list[]")
				{
					if (e.checked==true)
					{
						oneischecked=true;	
					}
				}
			}
	}	
	
	if (oneischecked==false) { errorstr += "- Please select atleast one order.\n";}
	if (errorstr != '')
	{
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}
	else
	{
		return true;
	}	
}






function loc(p3)
 {

/*var errorstr = '';
	var oneischecked=false;
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	with(document.form1)
	{ 	
			for(i=0;i<elements.length;i++)
			{
				var e = elements[i];
				if (e.name == "c[]")
				{
					if (e.checked==true)
					{
						oneischecked=true;	
					}
				}
			}
	}	
	
	if (oneischecked==false) { errorstr += "- Please select atleast one order.\n";}
	if (errorstr != '')
	{
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}
else
{*/
if(p3=='delete')
{
document.form1.action='addToCart.php?Call=delete';
document.form1.submit();
}
if(p3=='removeItem')
{
document.form1.action='addToCart.php?Call=removeItem';
document.form1.submit();
}
if(p3=='updatebasket')
{
//alert(document.form1.quantity[].value)
with(document.form1)
	{ 	
			for(i=0;i<elements.length;i++)
			{
				var e = elements[i];
				if (e.name == "quantity[]")
				{
					
					quantityVal=parseInt(e.value);
						//alert(quantityVal);
						if(isNaN(quantityVal) || quantityVal<=0){
						alert("Please enter proper quantity ");
						return false;
						}	
					
				}
			}
	}	
document.form1.action='addToCart.php?Call=updatebasket';
document.form1.submit();
}
if(p3=='')
{
document.form1.action='addtocart.php?Call=';
document.form1.submit();
}

//}

/*function ChekAll()
{
  if(document.form1.c1.checked)
  {
    for(i=0;i<document.form1.length;i++)
	 document.form1.elements[i].checked=true;
	  
  }
  else
  {
  
    for(i=0;i<document.form1.length;i++)
	 document.form1.elements[i].checked=false;
	  }
}*/
}

function bookmarksite(title, url){
if (document.all)
window.external.AddFavorite(url, title);
else if (window.sidebar)
window.sidebar.addPanel(title, url, "")
}



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

function isEmail (str){ 
	if((str)){
var theStr=Trim(str);	
var atIndex = theStr.indexOf('@'); 
var dotIndex = theStr.indexOf('.', atIndex); 
var flag = true; 
theSub = theStr.substring(0, dotIndex+1) 
if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length)){ 
	//alert("Not a valid email id");
	//obj.focus();
	flag = false; 
} 
else { flag = true; } 
return(flag); 
	}else{
	return false;
	}
}

function newAutoWindow(URL, width, height)
{       var HEIGHT=screen.height;
       var POPUP_HEIGHT = height;
       var POPUP_WIDTH = width;


       var HEIGHT_POP=786;
       HEIGHT_POP=(HEIGHT_POP - POPUP_HEIGHT);
       var WIDTH_POP=1024;
       WIDTH_POP=((WIDTH_POP - POPUP_WIDTH));
       WIDTH_POP=(WIDTH_POP - 50);

       window.open(URL,'page', 'top=5, left='+WIDTH_POP+', width='+POPUP_WIDTH+',height='+POPUP_HEIGHT+',directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=yes,controlbox=no');
       return false;

}




function blank_text(obj)
{
	obj.value="";
}
function fill_text(obj)
{
	if(obj.value=="")
	{
		obj.value="Type Your Email Address Here";
	}
	
}

function blank_textTop()
{
	document.getElementById('emailNewsLetterTop').value="";
}



function replace_func(img_file)
{
	var img_file;
	document.getElementById('main_image').src=img_file;
}

function valcheck()
{
alert(chkAccept);
var ca=document.all.chkAccept;
var bc=document.all.btnContinue;
bc.disabled==(ca.checked);
}

	//used to validate the contact us page
function validateContactInfo(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	with(document.frmContact){ 	
		if (contactfnm.value=='') { errorstr += "- Please enter your first name.\n";}
		if (contactlnm.value=='') { errorstr += "- Please enter your last name.\n";}
		if (contactemail.value=='') { errorstr += "- Please enter your email address.\n";}
		else if (!validEmail(contactemail.value)) { errorstr += "- Please enter valid email address.\n"; }
		if (contactmsg.value=='') { errorstr += "- Please enter your message text.\n";}
	}

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmContact.submit();
	}
}

	//used to validate the site-settings in admin panel
function validateSiteSettings(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	var len=document.site_settings.elements.length;
	with(document.site_settings){ 	
		if (site_title.value=='') { errorstr += "- Please enter site title.\n";}
		if (site_admin_title.value=='') { errorstr += "- Please enter admin title.\n";}
		if (site_email.value=='') { errorstr += "- Please enter site email address.\n";}
		else if (!validEmail(site_email.value)) { errorstr += "- Please enter valid site email address.\n"; }
		if (logo_url.value=='') { errorstr += "- Please enter logo url value.\n";}

		if (additional_insurance.value=='') { errorstr += "- Please enter additional insurance varrible value.\n";}
		else if(isNaN(additional_insurance.value)) { errorstr += "- Please enter numeric additional insurance varrible value.\n";}
		
		if(repack_onebox.value!="" && isNaN(repack_onebox.value)) { errorstr += "- Please enter numeric value for repack one box.\n";}
		if(repack_twobox.value!="" && isNaN(repack_twobox.value)) { errorstr += "- Please enter numeric value for repack two boxes.\n";}
		if(repack_threebox.value!="" && isNaN(repack_threebox.value)) { errorstr += "- Please enter numeric value for repack three boxes.\n";}
		if(repack_additional.value!="" && isNaN(repack_additional.value)) { errorstr += "- Please enter numeric value for repack additional box.\n";}

		
		
	}
	if (document.getElementById("offline-message").value=='') { errorstr += "- Please enter offline messaage value.\n";}

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.site_settings.submit();
	}
}


	//used to validate the admin side console benifit amount
function validateConsoleBenifit(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	with(document.addBenifit){ 	
		if (consoleAmount.value=='') { errorstr += "- Please enter benefit amount.\n";}
		else if(isNaN(consoleAmount.value)) { errorstr += "- Please enter numeric benefit amount value.\n";}
	}

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.addBenifit.submit();
	}
}

	//used to validate the forgot password process
function validateForgot(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	with(document.frmForgot){ 	
		if (userName.value=='') { errorstr += "- Please enter your email address.\n";}
	}
	if(document.getElementById("question").style.display=="block"){
		if(document.frmForgot.secrertAns.value==""){ errorstr += "- Please enter your secret answer value.\n";}
	}


	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmForgot.submit();
	}
}

function validateMoneyBook(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	with(document.frmMoneyBooker){ 	
		if (amount.value=='') { errorstr += "- Please enter amount to be uploaded.\n";}
		else if(isNaN(amount.value)) { errorstr += "- Please enter numeric amount to be uploaded .\n";}
		if (details.value=='') { errorstr += "- Please enter details for your transaction.\n";}
	}

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmMoneyBooker.submit();
	}
}
function validatePayPal(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	with(document.frmPayPal){ 	
		if (amount.value=='') { errorstr += "- Please enter amount to be uploaded.\n";}
		else if(isNaN(amount.value)) { errorstr += "- Please enter numeric amount to be uploaded .\n";}
		if (details.value=='') { errorstr += "- Please enter details for your transaction.\n";}
	}

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmPayPal.submit();
	}
}


function validateUpgradePlan(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	var len=document.frmChangePlan.elements.length;
	for( i = 0; i <len; i++ ){
		if( document.frmChangePlan.elements[i].type == "radio" && document.frmChangePlan.elements[i].checked==true){
			flag=1;
			break;
		}
	}
	if (flag=="0") { errorstr += "- Please select a membershipt plan.\n";}

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmChangePlan.submit();
	}
}

function validateRegister1(step){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		if(step=="1"){
			with(document.frmRegister){ 	
				if (country.value=='') { errorstr += "- Please select your home country.\n";}
				//if (learnAbout.value=='') { errorstr += "- Please select how do you learn about us?\n";}
				if (agreeTerms.checked==false) { errorstr += "- Please agree to the terms & conditions.";				 }
			}	
		}else if(step=="2"){
			var flag=0;
			var len=document.frmRegister.elements.length;
			for( i = 0; i <len; i++ ){
				if( document.frmRegister.elements[i].type == "radio" && document.frmRegister.elements[i].checked==true){
					flag=1;
					break;
				}
			}
			if (flag=="0") { errorstr += "- Please select a membershipt plan.\n";}
		}else if(step=="3"){
			var pass=document.frmRegister.password.value;
			with(document.frmRegister){ 	
				if (emailAddress.value=='') { errorstr += "- Please enter email address.\n";}
				else if (!validEmail(emailAddress.value)) { errorstr += "- Please enter valid email address.\n"; }
				
				if (confirmEmail.value=='') { errorstr += "- Please enter your confirm email address.\n";}
				if (emailAddress.value != confirmEmail.value) { errorstr += "- Please confirm your email addresses.\n"; }


				if (password.value=='') { errorstr += "- Please enter password.\n";}
				else if(pass.length < 7){
					errorstr +="- Password should be atleast 7 characters long.\n"; }
				if (confirmPass.value=='') { errorstr += "- Please enter confirm password.\n";}
				if (password.value != confirmPass.value) { errorstr += "- Please confirm your passwords.\n"; }
				if (secrertQus.value !="" && secrertAns.value=="") { errorstr += "- Please enter answer for secret question.\n"; }
			}
		}
		else if(step=="4"){
			with(document.frmRegister){ 	
			if (firstName.value=='') { errorstr += "- Please enter your first name.\n";}
			if (lastName.value=='') { errorstr += "- Please enter your last name.\n";}
			if (streetAddress.value=='') { errorstr += "- Please enter your address.\n";}
			if (city.value=='') { errorstr += "- Please enter city.\n";}
			if (state.value=='') { errorstr += "- Please enter state.\n";}
			
			if (zip.value=='') { errorstr += "- Please enter zip.\n";}
			if (dayPhone.value=='') { errorstr += "- Please enter your day time phone number.\n";}
			
			}	
		}
		
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmRegister.submit();
		}
}



function validateRegister(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		var pass=document.frmRegister.password.value;
		with(document.frmRegister){ 	
			//if (region_id.value=='') { errorstr += "- Please select your country zone.\n";}
			if (country.value=='') { errorstr += "- Please select your home country.\n";}
			if (membershipType.value=='') { errorstr += "- Please select a membership plan.\n"; }
			if (planPeriod.value=='') { errorstr += "- Please select plan period.\n";}
			if (emailAddress.value=='') { errorstr += "- Please enter email address.\n";}
			else if (!validEmail(emailAddress.value)) { errorstr += "- Please enter valid email address.\n"; }

			if (password.value=='') { errorstr += "- Please enter password.\n";}
			else if(pass.length < 7){
				errorstr +="- Password should be atleast 7 characters long.\n"; }
			if (confirmPass.value=='') { errorstr += "- Please enter confirm password.\n";}
			if (password.value != confirmPass.value) { errorstr += "- Please confirm your passwords.\n"; }


			if (firstName.value=='') { errorstr += "- Please enter your first name.\n";}
			if (lastName.value=='') { errorstr += "- Please enter your last name.\n";}
			
			if (streetAddress.value=='') { errorstr += "- Please enter your address.\n";}
			if (city.value=='') { errorstr += "- Please enter city.\n";}
			if (state.value=='') { errorstr += "- Please enter state.\n";}
			
			if (zip.value=='') { errorstr += "- Please enter zip.\n";}
			if (dayPhone.value=='') { errorstr += "- Please enter your day time phone number.\n";}
		}	

		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmRegister.submit();
		}
}


function validatePackage(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		with(document.frmPackage){ 	
			if (memberID.value=='') { errorstr += "- Please select a member.\n";}
			if (packTypeID.value=='') { errorstr += "- Please select Item type.\n";}
			if (packActualWeight.value=='') { errorstr += "- Please enter Item actual weight.\n";}
			else if(isNaN(packActualWeight.value)) { errorstr += "- Please enter numeric actual weight.\n";}
			if (packDimWeight.value=='') { errorstr += "- Please enter Item dimensional weight.\n";}
			else if(isNaN(packDimWeight.value)) { errorstr += "- Please enter numeric dimensional weight.\n";}
			if (packLength.value=='') { errorstr += "- Please enter Item length.\n";}
			else if(isNaN(packLength.value)) { errorstr += "- Please enter numeric Item length.\n";}
			if (packWidth.value=='') { errorstr += "- Please enter Item width.\n";}
			else if(isNaN(packWidth.value)) { errorstr += "- Please enter numeric Item width.\n";}
			if (packHeight.value=='') { errorstr += "- Please enter Item height.\n";}
			else if(isNaN(packHeight.value)) { errorstr += "- Please enter numeric Item height.\n";}
			if (packCondition.value=='') { errorstr += "- Please enter Item condition.\n";}
			if (packSender.value=='') { errorstr += "- Please enter sender details.\n"; }
			//if (packPrice.value=='') { errorstr += "- Please enter Item price.\n";}
			//else if(isNaN(packPrice.value)) { errorstr += "- Please enter numeric Item price.\n";}
		}	
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmPackage.submit();
		}
}

// used in admin side package Type module
function validatePackageType(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		with(document.frmpackType){ 	
			if (pkTypName.value=='') { errorstr += "- Please enter package type title.\n";}
		}	
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmpackType.submit();
		}
}

// used in admin side manage regions module
function validateRegions(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		with(document.frm_Region){ 	
			if (region_name.value=='') { errorstr += "- Please enter region name.\n";}
			if (description.value=='') { errorstr += "- Please enter region description.\n";}
		}	
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frm_Region.submit();
		}
}

// used in admin side manage countries module
function validateCountries(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		with(document.frm_country){ 	
			if (country_name.value=='') { errorstr += "- Please enter country name.\n";}
			if (countries_iso_code_2.value=='') { errorstr += "- Please enter country iso code 2.\n";}
			if (countries_iso_code_3.value=='') { errorstr += "- Please enter country iso code 3.\n";}
		}	
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frm_country.submit();
		}
}


// used in admin side manage static pages,learnmore,tips,faqs and features pages module
function validatePage(pagetype){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		with(document.update_page){ 	
			if(pagetype=="staticPage"){
				if (trim(page_title.value)=='') { errorstr += "- Please enter page title.\n";}
				if (trim(page_content.value)=='') { errorstr += "- Please enter page contents.\n";}
			}else if(pagetype=="learn"){
				if (trim(page_title.value)=='') { errorstr += "- Please enter learn More page title.\n";}
				if (trim(page_content.value)=='') { errorstr += "- Please enter learn More page contents.\n";}
			}else if(pagetype=="tips"){
				if (trim(page_title.value)=='') { errorstr += "- Please enter tips title.\n";}
				if (trim(page_content.value)=='') { errorstr += "- Please enter tips contents.\n";}
			}else if(pagetype=="faqs"){
				if (trim(page_title.value)=='') { errorstr += "- Please enter faqs title.\n";}
				if (trim(page_content.value)=='') { errorstr += "- Please enter faqs contents.\n";}
			}else if(pagetype=="feature"){
				if (trim(page_title.value)=='') { errorstr += "- Please enter feature title.\n";}
				if (trim(page_content.value)=='') { errorstr += "- Please enter feature contents.\n";}
			}
		}	
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.update_page.submit();
		}
}

	
// used in admin side plan module
function validatePlan(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		with(document.update_plan){ 	
			if (planType.value=='') { errorstr += "- Please select a plan type.\n";}
			if (planTitle.value=='') { errorstr += "- Please enter plan title.\n";}
			if (packStoragePeriod.value=='') { errorstr += "- Please enter package storage period.\n";}
			else if (packStoragePeriod.value!='' && isNaN(packStoragePeriod.value)) { errorstr += "- Please enter numeric package storage period .\n";}
			if (planPrice.value=='') { errorstr += "- Please enter plan price.\n";}
			else if(isNaN(planPrice.value)) { errorstr += "- Please enter numeric plan price.\n";}
			if (planType.value=='1') {
				if (minPeriod.value > maxPeriod.value) { errorstr += "- Min period value should be less than Max period value.\n";}
			}
			if (setupFee.value=='') { errorstr += "- Please enter setup fee.\n";}
			else if(isNaN(setupFee.value)) { errorstr += "- Please enter numeric value for setup fee.\n";}
			if (firstPound.value!='' && isNaN(firstPound.value)) { errorstr += "- Please enter numeric first pound fee.\n";}
			if (additionalPound.value!='' && isNaN(additionalPound.value)) { errorstr += "- Please enter numeric additional pound fee .\n";}
			if (region_id.value=='') { errorstr += "- Please select a zone for the plan.\n";}
		}	
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.update_plan.submit();
		}
}


function validateUpdate(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		//var pass=document.frmRegister.password.value;
		with(document.frmRegister){ 	
			//if (region_id.value=='') { errorstr += "- Please select your country zone.\n";}
			//if (country.value=='') { errorstr += "- Please select your home country.\n";}
			//if (membershipType.value=='') { errorstr += "- Please select a membership plan.\n"; }
			//if (firstName.value=='') { errorstr += "- Please enter your first name.\n";}
			//if (lastName.value=='') { errorstr += "- Please enter your last name.\n";}
			//if (emailAddress.value=='') { errorstr += "- Please enter email address.\n";}
			//else if (!validEmail(emailAddress.value)) { errorstr += "- Please enter valid email address.\n"; }
			if (streetAddress.value=='') { errorstr += "- Please enter your address.\n";}
			if (city.value=='') { errorstr += "- Please enter city.\n";}
			if (state.value=='') { errorstr += "- Please enter state.\n";}
			if (zip.value=='') { errorstr += "- Please enter zip.\n";}
			if (dayPhone.value=='') { errorstr += "- Please enter your day time phone number.\n";}
			//if (agreeTerms.checked==false) { errorstr += "- Please agree to the terms & conditions."; }
		}	

		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmRegister.submit();
		}
}

function validatePassword(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		var pass=document.frmPassword.password.value;
		with(document.frmPassword){ 	
			if (password.value=='') { errorstr += "- Please enter password.\n";}
			else if(pass.length < 7){
				errorstr +="- Password should be atleast 7 characters long.\n"; }
			if (confirmPass.value=='') { errorstr += "- Please enter confirm password.\n";}
			if (password.value != confirmPass.value) { errorstr += "- Please confirm your passwords.\n";}
		}	

		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmPassword.submit();
		}
}


<!-- Original:  Simon Tneoh (tneohcb@pc.jaring.my) -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

// credit card validations starts here
var Cards = new makeArray(8);
Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
var MasterCard = Cards[0];
Cards[1] = new CardType("Visa", "4", "13,16");
var Visa = Cards[1];
Cards[2] = new CardType("AmExCard", "34,37", "15");
var AmExCard = Cards[2];
Cards[3] = new CardType("DinersClubCard", "30,36,38", "14");
var DinersClubCard = Cards[3];
Cards[4] = new CardType("Discover", "6011", "16");
var Discover = Cards[4];
Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
var enRouteCard = Cards[5];
Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
var JCBCard = Cards[6];
var LuhnCheckSum = Cards[7] = new CardType();


/*************************************************************************\
CheckCardNumber(form)
function called when users click the "check" button.
\*************************************************************************/
function CheckCardNumber(form) {
var tmpyear;
/*if (!document.frmPayment.CardType[0].checked && !document.frmPayment.CardType[1].checked && !document.frmPayment.CardType[2].checked) {
alert("Please select a card type.");
document.frmPayment.CardNumber.focus();
return false;
}*/
if (document.frmPayment.CardNumber.value.length == 0) {
alert("Please enter a Card Number.");
document.frmPayment.CardNumber.focus();
return false;
}
if (document.frmPayment.ExpYear.value.length == 0) {
alert("Please enter the Expiration Year.");
document.frmPayment.ExpYear.focus();
return false;
}

tmpyear = document.frmPayment.ExpYear.value;
tmpmonth = document.frmPayment.ExpMon.options[document.frmPayment.ExpMon.selectedIndex].value;
// The following line doesn't work in IE3, you need to change it
// to something like "(new CardType())...".
// if (!CardType().isExpiryDate(tmpyear, tmpmonth)) 
if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
alert("This card has already expired.");
return(false);
}
//card = document.frmPayment.CardType.options[document.frmPayment.CardType.selectedIndex].value;
	/*for( i = 0; i < document.frmPayment.CardType.length; i++ ){
		if( document.frmPayment.CardType[i].checked == true )
		card = document.frmPayment.CardType[i].value;
	}*/
	/*var retval = eval(card + ".checkCardNumber(\"" + document.frmPayment.CardNumber.value +	"\", " + tmpyear + ", " + tmpmonth + ");");
	cardname = "";
	if (retval)
	{
		return(true);
	// comment this out if used on an order form
	//alert("This card number appears to be valid.");	
	}
	else {
// The cardnumber has the valid luhn checksum, but we want to know which
// cardtype it belongs to.
	for (var n = 0; n < Cards.size; n++) {
		if (Cards[n].checkCardNumber(document.frmPayment.CardNumber.value, tmpyear, tmpmonth)) {
		cardname = Cards[n].getCardType();
		break;
		   }
	}
	if (cardname.length > 0) {
		alert("This looks like a " + cardname + " number, not a " + card + " number.");
		return(false);
	}
	else {
	alert("This card number is not valid.");
	return(false);
      }
   }*/
  return (true);
}


function CheckCard(form,checkCase) {

var tmpyear;
	if(checkCase=="funds"){ //used for card validations for upload funds process
		if (document.frmCardPayment.amount.value==""){
			alert("Please enter amount to be uploaded.");
			document.frmCardPayment.amount.focus();
			return false;
		}else if(isNaN(document.frmCardPayment.amount.value)) { 
			alert("Please enter numeric amount to be uploaded.");
			document.frmCardPayment.amount.focus();
			return false;	
		}
		if (document.frmCardPayment.CardType.value==""){
			alert("Please select a card type.");
			document.frmCardPayment.CardType.focus();
			return false;
		}
		if (document.frmCardPayment.CardNumber.value.length == 0) {
			alert("Please enter a Card Number.");
			document.frmCardPayment.CardNumber.focus();
			return false;
		}
		if (document.frmCardPayment.ExpYear.value.length == 0) {
			alert("Please enter the Expiration Year.");
			document.frmCardPayment.ExpYear.focus();
			return false;
		}
		if(document.frmCardPayment.details.value.length == 0) {
			alert("Please enter details for your transaction.");
			document.frmCardPayment.details.focus();
			return false;
		}


		tmpyear=document.frmCardPayment.ExpYear.value;
		tmpmonth = document.frmCardPayment.ExpMon.options[document.frmCardPayment.ExpMon.selectedIndex].value;
		// The following line doesn't work in IE3, you need to change it
		// to something like "(new CardType())...".
		// if (!CardType().isExpiryDate(tmpyear, tmpmonth)) 
		if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
			alert("This card has already expired.");
			return(false);
		}
			card = document.frmCardPayment.CardType.value;
			var retval = eval(card + ".checkCardNumber(\"" + document.frmCardPayment.CardNumber.value +	"\", " + tmpyear + ", " + tmpmonth + ");");
			cardname = "";
			if (retval)
			{
				return(true);
			// comment this out if used on an order form
			//alert("This card number appears to be valid.");	
			}
			else {
		// The cardnumber has the valid luhn checksum, but we want to know which
		// cardtype it belongs to.
			for (var n = 0; n < Cards.size; n++) {
				if (Cards[n].checkCardNumber(document.frmCardPayment.CardNumber.value, tmpyear, tmpmonth)) {
				cardname = Cards[n].getCardType();
				break;
				   }
			}
			if (cardname.length > 0) {
				alert("This looks like a " + cardname + " number, not a " + card + " number.");
				return(false);
			}
			else {
				alert("This card number is not valid.");
				return(false);
			 }
		   }
	}
  return (true);
}


function validatemakePayment(maxInsurance){
	 //used for card validations on the makepayment page
		var IDs=document.frmPayment.arrVal.value;
		var arr=IDs.split(",");
		var arrId=arr.reverse();
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		
			for(id=0;id<(arrId.length);id++){
				declaredName="declaredVal"+arrId[id];
				insuredName="insuredVal"+arrId[id];
				fullDesc="fullDescription"+arrId[id];
				
				if(trim(document.getElementById(fullDesc).value)==""){
					errorstr += "- Please enter full description of content for item - "+arrId[id]+".\n";
				}

				if(document.getElementById(declaredName).value==""){
					errorstr += "- Please enter Declared value for item - "+arrId[id]+".\n";
				}else if(isNaN(document.getElementById(declaredName).value)){
					errorstr += "- Please enter numeric Declared value for item - "+arrId[id]+".\n";
				}
				
				if(document.frmPayment.rdInsurance[1].checked){
					if(document.getElementById(insuredName).value!="" && (parseInt(document.getElementById(insuredName).value)>parseInt(maxInsurance))){
						errorstr += "- Additional Insurance value for item "+arrId[id]+" can not exceed maximum insurance value i.e. "+ maxInsurance+".\n";
					}
				}
		}
		var flag=0;		
		var len=document.frmPayment.payType.length;
		for(var i = 0; i <len; i++ ){
			if(document.frmPayment.payType[i].checked==true){
				flag=1;
				break;
			}
		}
		if (flag=="0") { errorstr += "- Please select a payment method type.\n";}
		
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}

		if(document.frmPayment.payType[0].checked){
			if (document.frmPayment.CardType.value==""){
				alert("Please select a card type.");
				document.frmPayment.CardType.focus();
				return false;
			}
			if (document.frmPayment.CardNumber.value.length == 0) {
				alert("Please enter a Card Number.");
				document.frmPayment.CardNumber.focus();
				return false;
			}
			if (document.frmPayment.ExpYear.value.length == 0) {
				alert("Please enter the Expiration Year.");
				document.frmPayment.ExpYear.focus();
				return false;
			}
		
			tmpyear = document.frmPayment.ExpYear.value;
			tmpmonth = document.frmPayment.ExpMon.options[document.frmPayment.ExpMon.selectedIndex].value;
			// The following line doesn't work in IE3, you need to change it
			// to something like "(new CardType())...".
			// if (!CardType().isExpiryDate(tmpyear, tmpmonth)) 
			if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
				alert("This card has already expired.");
				return(false);
			}
			
			if (document.frmPayment.CVS.value.length == 0) {
				alert("Please enter a CCV Code.");
				document.frmPayment.CVS.focus();
				return false;
			}

				card = document.frmPayment.CardType.value;
				var retval = eval(card + ".checkCardNumber(\"" + document.frmPayment.CardNumber.value +	"\", " + tmpyear + ", " + tmpmonth + ");");
				cardname = "";
				if (retval)
				{
					with(document.frmPayment){ 	
						if (streetAddress.value=='') { errorstr += "- Please enter your billing address.\n";}
						if (city.value=='') { errorstr += "- Please enter your billing city.\n";}
						if (country.value=='') { errorstr += "- Please select your billing country.\n";}
						if (zip.value=='') { errorstr += "- Please enter Zip / Postal code.\n"; }
					}
					if (parseInt(document.frmPayment.country.value)==223) {
						if (document.frmPayment.usstate.value=='') { errorstr += "- Your billing state is missing.\n";}
					}else{
						if (document.frmPayment.state.value=='') { errorstr += "- Your billing state is missing.\n";}
					}
					if (errorstr != ''){
						msgstr = msgstr + errorstr;
						alert(msgstr);
						return false;
					}else{
						//document.frmPay.submit();
						return true;
					}

					//return(true);
				// comment this out if used on an order form
				//alert("This card number appears to be valid.");	
				}
				else {
			// The cardnumber has the valid luhn checksum, but we want to know which
			// cardtype it belongs to.
				for (var n = 0; n < Cards.size; n++) {
					if (Cards[n].checkCardNumber(document.frmPayment.CardNumber.value, tmpyear, tmpmonth)) {
					cardname = Cards[n].getCardType();
					break;
					   }
				}
				if (cardname.length > 0) {
					alert("This looks like a " + cardname + " number, not a " + card + " number.");
					return(false);
				}
				else {
					alert("This card number is not valid.");
					return(false);
				 }
			  }
			}
}


/*************************************************************************\
Object CardType([String cardtype, String rules, String len, int year, 
                                        int month])
cardtype    : type of card, eg: MasterCard, Visa, etc.
rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
len         : valid length of cardnumber, eg: "16,19", "13,16".
year        : year of expiry date.
month       : month of expiry date.
eg:
var VisaCard = new CardType("Visa", "4", "16");
var AmExCard = new CardType("AmEx", "34,37", "15");
\*************************************************************************/
function CardType() {
var n;
var argv = CardType.arguments;
var argc = CardType.arguments.length;

this.objname = "object CardType";

var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

this.setCardNumber = setCardNumber;  // set CardNumber method.
this.setCardType = setCardType;  // setCardType method.
this.setLen = setLen;  // setLen method.
this.setRules = setRules;  // setRules method.
this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

this.setCardType(tmpcardtype);
this.setLen(tmplen);
this.setRules(tmprules);
if (argc > 4)
this.setExpiryDate(argv[3], argv[4]);

this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
this.getCardType = getCardType;  // getCardType method.
this.isCardNumber = isCardNumber;  // isCardNumber method.
this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
this.luhnCheck = luhnCheck;// luhnCheck method.
return this;
}

/*************************************************************************\
boolean checkCardNumber([String cardnumber, int year, int month])
return true if cardnumber pass the luhncheck and the expiry date is
valid, else return false.
\*************************************************************************/
function checkCardNumber() {
var argv = checkCardNumber.arguments;
var argc = checkCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
var year = (argc > 1) ? argv[1] : this.year;
var month = (argc > 2) ? argv[2] : this.month;

this.setCardNumber(cardnumber);
this.setExpiryDate(year, month);

if (!this.isCardNumber())
return false;
if (!this.isExpiryDate())
return false;

return true;
}
/*************************************************************************\
String getCardType()
return the cardtype.
\*************************************************************************/
function getCardType() {
return this.cardtype;
}
/*************************************************************************\
String getExpiryDate()
return the expiry date.
\*************************************************************************/
function getExpiryDate() {
return this.month + "/" + this.year;
}
/*************************************************************************\
boolean isCardNumber([String cardnumber])
return true if cardnumber pass the luhncheck and the rules, else return
false.
\*************************************************************************/
function isCardNumber() {
var argv = isCardNumber.arguments;
var argc = isCardNumber.arguments.length;
var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
if (!this.luhnCheck())
return false;

for (var n = 0; n < this.len.size; n++)
if (cardnumber.toString().length == this.len[n]) {
for (var m = 0; m < this.rules.size; m++) {
var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
if (headdigit == this.rules[m])
return true;
}
return false;
}
return false;
}

/*************************************************************************\
boolean isExpiryDate([int year, int month])
return true if the date is a valid expiry date,
else return false.
\*************************************************************************/
function isExpiryDate() {
var argv = isExpiryDate.arguments;
var argc = isExpiryDate.arguments.length;

year = argc > 0 ? argv[0] : this.year;
month = argc > 1 ? argv[1] : this.month;

if (!isNum(year+""))
return false;
if (!isNum(month+""))
return false;
today = new Date();
expiry = new Date(year, month);
if (today.getTime() > expiry.getTime())
return false;
else
return true;
}

/*************************************************************************\
boolean isNum(String argvalue)
return true if argvalue contains only numeric characters,
else return false.
\*************************************************************************/
function isNum(argvalue) {
argvalue = argvalue.toString();

if (argvalue.length == 0)
return false;

for (var n = 0; n < argvalue.length; n++)
if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
return false;

return true;
}

/*************************************************************************\
boolean luhnCheck([String CardNumber])
return true if CardNumber pass the luhn check else return false.
Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
\*************************************************************************/
function luhnCheck() {
var argv = luhnCheck.arguments;
var argc = luhnCheck.arguments.length;

var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

if (! isNum(CardNumber)) {
return false;
  }

var no_digit = CardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;

for (var count = 0; count < no_digit; count++) {
var digit = parseInt(CardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
sum += digit;
}
if (sum % 10 == 0)
return true;
else
return false;
}

/*************************************************************************\
ArrayObject makeArray(int size)
return the array object in the size specified.
\*************************************************************************/
function makeArray(size) {
this.size = size;
return this;
}

/*************************************************************************\
CardType setCardNumber(cardnumber)
return the CardType object.
\*************************************************************************/
function setCardNumber(cardnumber) {
this.cardnumber = cardnumber;
return this;
}

/*************************************************************************\
CardType setCardType(cardtype)
return the CardType object.
\*************************************************************************/
function setCardType(cardtype) {
this.cardtype = cardtype;
return this;
}

/*************************************************************************\
CardType setExpiryDate(year, month)
return the CardType object.
\*************************************************************************/
function setExpiryDate(year, month) {
this.year = year;
this.month = month;
return this;
}

/*************************************************************************\
CardType setLen(len)
return the CardType object.
\*************************************************************************/
function setLen(len) {
// Create the len array.
if (len.length == 0 || len == null)
len = "13,14,15,16,19";

var tmplen = len;
n = 1;
while (tmplen.indexOf(",") != -1) {
tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
n++;
}
this.len = new makeArray(n);
n = 0;
while (len.indexOf(",") != -1) {
var tmpstr = len.substring(0, len.indexOf(","));
this.len[n] = tmpstr;
len = len.substring(len.indexOf(",") + 1, len.length);
n++;
}
this.len[n] = len;
return this;
}

/*************************************************************************\
CardType setRules()
return the CardType object.
\*************************************************************************/
function setRules(rules) {
// Create the rules array.
if (rules.length == 0 || rules == null)
rules = "0,1,2,3,4,5,6,7,8,9";
  
var tmprules = rules;
n = 1;
while (tmprules.indexOf(",") != -1) {
tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
n++;
}
this.rules = new makeArray(n);
n = 0;
while (rules.indexOf(",") != -1) {
var tmpstr = rules.substring(0, rules.indexOf(","));
this.rules[n] = tmpstr;
rules = rules.substring(rules.indexOf(",") + 1, rules.length);
n++;
}
this.rules[n] = rules;
return this;
}


//credit card validations ends here


//general used functions

		//number format funcion 
function r2(n) { 
 
  ans = (Math.round(n * 100))/100 + "" 
  dot = ans.indexOf(".",0) 
  if (dot == -1) {ans = ans + ".00"} 
  else if (dot == ans.length - 2) {ans = ans + "0"} 
  return ans 
  
} 

//functions used to set the search field textbox class
function changeTextclass(obj){
	if(obj.value=="      Search")
	{
		obj.className='textfield2';
		obj.value='';
	}	
}
function changeTextclass1(obj){
	if(obj.value=="")
	{
		obj.className='textfield-icon';
		obj.value='      Search';
	}
}


		//functions used to discard items
function discardItemAjax(itemId){
		var strSubmit = "task=discardItem&itemId="+itemId;
		var strURL = "processAjax.php";
		var strResultFunc="displayDiscard";
		xmlhttpPost(strURL, strSubmit, strResultFunc);
}

function displayDiscard(result){
	if(trim(result)=="1"){
		window.location.reload();
	}
}

function discardItem(itemId){
	a=confirm("Are you sure to discard this item?");
	if(a){
		discardItemAjax(itemId);
	}
}


//functions used to discard items ends

	//function used to switch weight units on package forwarding system page
function changeUnits(units,IDs,actualWeights,dimWeights){
		var strSubmit = "task=changeUnits&units="+units+"&IDs="+IDs+"&actualWeights="+actualWeights+"&dimWeights="+dimWeights;
		var strURL = "processAjax.php";
		var strResultFunc="displayResult";
		xmlhttpPost(strURL, strSubmit, strResultFunc);
}

function displayResult(result){
	var res=trim(result);
	var results=res.split("|");
	var arrId=results[1].split(",");
	var arrActWeights=results[2].split(",");
	var arrDimWeights=results[3].split(",");

	for(id=0;id<(arrId.length);id++){
		if(results[0]=="Lbs"){
			//adjust actual weight to pound
			divPackId="AdivPack"+arrId[id];
			divUnits="AdivUnits"+arrId[id];
			settleWeight=r2(arrActWeights[id]);
			document.getElementById(divPackId).innerHTML=settleWeight;
			document.getElementById(divUnits).innerHTML="Lbs";

				//adjust dimensional weight to pound
			divPackId2="DdivPack"+arrId[id];
			divUnits2="DdivUnits"+arrId[id];
			settleWeight2=r2(arrDimWeights[id]);
			document.getElementById(divPackId2).innerHTML=settleWeight2;
			document.getElementById(divUnits2).innerHTML="Lbs";

		}else if(results[0]=="Kg"){
	
			//adjust actual weight to kgs
			divPackId="AdivPack"+arrId[id];
			divUnits="AdivUnits"+arrId[id];
			settleWeight=r2((document.getElementById(divPackId).innerHTML)/2.2);
			document.getElementById(divPackId).innerHTML=settleWeight;
			document.getElementById(divUnits).innerHTML="Kgs";

				//adjust dimensional weight to kgs
			divPackId2="DdivPack"+arrId[id];
			divUnits2="DdivUnits"+arrId[id];
			settleWeight=r2((document.getElementById(divPackId2).innerHTML)/2.2);
			document.getElementById(divPackId2).innerHTML=settleWeight;
			document.getElementById(divUnits2).innerHTML="Kgs";
		}
	}
}

	//function used to change saving rate the no of pound selected
function processSaving(pounds,totWeight,firstPound,additionalPounds){
		var strSubmit = "task=processSave&pounds="+pounds+"&totWeight="+totWeight+"&firstPound="+firstPound+"&additionalPounds="+additionalPounds;
		var strURL = "processAjax.php";
		var strResultFunc="displayResultSave";
		xmlhttpPost(strURL, strSubmit, strResultFunc);
}

function displayResultSave(result){
	res=trim(result);
	var results=res.split("|");
	if(document.getElementById("divSave")){
		document.getElementById("divSave").innerHTML="$"+results[0];
	}
	document.getElementById("divSave1").innerHTML="$"+results[0];
	document.getElementById("subTotal").innerHTML="$"+results[1];
}


		//functions used to set/unset the items in the session on clicking the checkbox in package forwarding system
function setItemStatus(itemId,stat){
	var strSubmit = "task=setSession&itemId="+itemId+"&stat="+stat;
	var strURL = "processAjax.php";
	var strResultFunc="displayStatus";
	xmlhttpPost(strURL, strSubmit, strResultFunc);		
}

function displayStatus(result){
	res=trim(result);
	document.getElementById("divSubList").innerHTML=res;
}

	//used to show the larger view popup 
function show_Popup(url,showCase,variable,wdth,hgt){
	switch(showCase){
		case "image":
			window.open(url+'?image='+variable,'LargerImage','width='+wdth+',height='+hgt+',scrollbars=yes,top=0,left=0');
			break;
		case "staticPage":
			window.open(url+'?pid='+variable,'LearnMore','width='+wdth+',height='+hgt+',scrollbars=yes,top=0,left=0');
			break;
	}
}

	//used to display the secret question in forgot password page
function processForgotPass() {
	if(document.frmForgot.userName.value!="")
	{
		strSubmit = "task=forgotPass&eMail="+document.frmForgot.userName.value;
		var strURL = "processAjax.php";
		var strResultFunc = "funcForgotPassResult";
		xmlhttpPost(strURL, strSubmit, strResultFunc);
	}
}

function funcForgotPassResult(result)
{
	var obj=document.getElementById("question");
	obj.style.display="block";
	var obj1=document.getElementById("spanQus");
	obj1.innerHTML=result;
}


		//functions used to set the items storage period on the register2 page on the basis of months selected
function changeStorage(pId,months){
	var strSubmit = "task=setStoragePeriod&planId="+pId+"&months="+months;
	var strURL = "processAjax.php";
	var strResultFunc="displayStorage";
	xmlhttpPost(strURL, strSubmit, strResultFunc);		
}

function displayStorage(result){
	res=trim(result);
	var results=res.split("|");
	var spanId="spanStorage"+results[0];
	var dispvalue=results[1];
	document.getElementById(spanId).innerHTML=dispvalue;
}

//function used to compare 2 dates used in admin side item reporting
function CompareDates() {
	var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		if(Date.parse(document.frmSearch.edDate.value) < Date.parse(document.frmSearch.stDate.value)) { errorstr += "- Start date should be greter than end date.\n"; }
		
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			return true;
		}	
}

function checkCheckbox(frm)
{
	var i=0;
		var ckd=-1;
		len = frm.elements.length;
		
		for( i=0 ; i<len ; i++)
		{
			
			if (frm.elements[i].type=='checkbox') 
			{	
				if (frm.elements[i].checked==true) ckd++;
			}
		}
		
		if(ckd==-1)
		{
			//alert("Please select atleast one checkbox to delete item.");
			return false;
		}
		return true;
}

function del_prompt(frmobj,comb,act)
{	
	if(checkCheckbox(frmobj)){
		if(comb=='Delete Selected'){
			if(confirm ("Are you sure you want to delete selected Record(s)")){
				frmobj.action = act;
				frmobj.submit();
			}else{ 
				return false;
			}
		}
	}else{
		return false;
	}
}


function del_orders(frmobj,comb,act){	
	var errorstr = '';
	var oneischecked=false;
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	with(document.frmOrderTrack)
	{ 	
			for(i=0;i<elements.length;i++)
			{
				var e = elements[i];
				if (e.name == "packID[]")
				{
					if (e.checked==true)
					{
						oneischecked=true;	
					}
				}
			}
	}	
	
	if (oneischecked==false) { errorstr += "- Please select atleast one item to delete.\n";}
	if (errorstr != '')
	{
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}
	else
	{
		if(confirm ("Are you sure you want to delete selected Item(s)")){
			document.frmOrderTrack.submit();
			return true;
		}else{
			return false;
		}
	}
}


function repack_orders(frmobj,comb,act){
	var errorstr = '';
	var oneischecked=false;
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	with(document.frmRepack){ 	
			for(i=0;i<elements.length;i++){
				var e = elements[i];
				if (e.name == "packID[]"){
					if (e.checked==true){
						oneischecked=true;	
					}
				}
			}
	}	
	
	if (oneischecked==false) { errorstr += "- Please select atleast one item to repack.\n";}
	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		if(confirm ("Are you sure you want to repack selected Item(s)")){
			document.frmRepack.submit();
			return true;
		}else{
			return false;
		}
	}
}

function validatePayment(){
	 //used for card validations on the makepayment page
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		var flag=0;		
		var len=document.frmPay.payType.length;
		for(var i = 0; i <len; i++ ){
			if(document.frmPay.payType[i].checked==true){
				flag=1;
				break;
			}
		}
		if (flag=="0") { errorstr += "- Please select a payment method type.\n";}
		
		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}

		if(document.frmPay.payType[0].checked){
			if (document.frmPay.CardType.value==""){
				alert("Please select a card type.");
				document.frmPay.CardType.focus();
				return false;
			}
			if (document.frmPay.CardNumber.value.length == 0) {
				alert("Please enter a Card Number.");
				document.frmPay.CardNumber.focus();
				return false;
			}
			if (document.frmPay.ExpYear.value.length == 0) {
				alert("Please enter the Expiration Year.");
				document.frmPay.ExpYear.focus();
				return false;
			}
			
			tmpyear=document.frmPay.ExpYear.value
			tmpmonth = document.frmPay.ExpMon.options[document.frmPay.ExpMon.selectedIndex].value;
			// The following line doesn't work in IE3, you need to change it
			// to something like "(new CardType())...".
			// if (!CardType().isExpiryDate(tmpyear, tmpmonth)) 
			if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
				alert("This card has already expired.");
				return false ;
			}
			if (document.frmPay.CVS.value.length == 0) {
				alert("Please enter a CCV Code.");
				document.frmPay.CVS.focus();
				return false;
			}
			/*if (document.frmPay.state.value=="") {
				alert("Please select state.");
				document.frmPay.state.focus();
				return false;
			}*/
				card = document.frmPay.CardType.value;
				var retval = eval(card + ".checkCardNumber(\"" + document.frmPay.CardNumber.value +	"\", " + tmpyear + ", " + tmpmonth + ");");
				cardname = "";
				if (retval)
				{
					with(document.frmPay){ 	
						if (streetAddress.value=='') { errorstr += "- Please enter your billing address.\n";}
						if (city.value=='') { errorstr += "- Please enter your billing city.\n";}
						if (country.value=='') { errorstr += "- Please select your billing country.\n";}	
						if (zip.value=='') { errorstr += "- Please enter Zip / Postal code.\n"; }
					}
					if (parseInt(document.frmPay.country.value)==223) {
						if (document.frmPay.usstate.value=='') { errorstr += "- Your billing state is missing.\n";}
					}else{
						if (document.frmPay.state.value=='') { errorstr += "- Your billing state is missing.\n";}
					}
					if (errorstr != ''){
						msgstr = msgstr + errorstr;
						alert(msgstr);
						return false;
					}else{
						//document.frmPay.submit();
						return true;
					}
					

				// comment this out if used on an order form
				//alert("This card number appears to be valid.");	
				}
				else {
			// The cardnumber has the valid luhn checksum, but we want to know which
			// cardtype it belongs to.
				for (var n = 0; n < Cards.size; n++) {
					if (Cards[n].checkCardNumber(document.frmPay.CardNumber.value, tmpyear, tmpmonth)) {
					cardname = Cards[n].getCardType();
					break;
					   }
				}
				if (cardname.length > 0) {
					alert("This looks like a " + cardname + " number, not a " + card + " number.");
					return false;
				}
				else {
					alert("This card number is not valid.");
					return false;
				 }
			  }
	 		
			
			
			}
}

//used to validate the forgot password process
function validateMerchant(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	var regexp =  /^\w(\.?\w)*@\w(\.?[-\w])*\.[a-z]{2,4}$/i;
	with(document.frmRegister){ 	
		if (type.value=='') { errorstr += "- Please enter merchant type.\n";}
		if (name.value=='') { errorstr += "- Please enter name.\n";}
		if (siteurl.value=='') { errorstr += "- Please enter siteURL.\n";}
		if (email.value=='') { errorstr += "- Please enter email address.\n";}
		if (email.value!='') { 
			if (regexp.test(email.value) != true)
			{
				errorstr += "- Please enter valid email address.\n";
			}
		}		
		if (password.value=='') { errorstr += "- Please enter password.\n";}		
		if (password.value!=confirmpassword.value) { errorstr += "- Password does not match.\n";}
		if (imagecode.value=='') { errorstr += "- Please enter security code.\n";}		
		if (agreeTerms.checked==false) { errorstr += "- Please agree to the terms & conditions.";				 }
	}		

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmRegister.submit();
	}
}

function validateMerchantAdmin(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	var regexp =  /^\w(\.?\w)*@\w(\.?[-\w])*\.[a-z]{2,4}$/i;
	with(document.frmRegister){ 	
		if (type.value=='') { errorstr += "- Please enter merchant type.\n";}
		if (name.value=='') { errorstr += "- Please enter name.\n";}
		if (siteurl.value=='') { errorstr += "- Please enter siteURL.\n";}
		if (email.value=='') { errorstr += "- Please enter email address.\n";}
		if (email.value!='') { 
			if (regexp.test(email.value) != true)
			{
				errorstr += "- Please enter valid email address.\n";
			}
		}		
		//if (password.value=='') { errorstr += "- Please enter password.\n";}		
		//if (password.value!=confirmpassword.value) { errorstr += "- Password does not match.\n";}
	}		

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		return true;
	}
}


function validateMerchantMyAccount(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;
	var regexp =  /^\w(\.?\w)*@\w(\.?[-\w])*\.[a-z]{2,4}$/i;
	with(document.frmRegister){ 	
		if (type.value=='') { errorstr += "- Please enter merchant type.\n";}
		if (name.value=='') { errorstr += "- Please enter name.\n";}
		if (siteurl.value=='') { errorstr += "- Please enter siteURL.\n";}
		if (email.value=='') { errorstr += "- Please enter email address.\n";}
		if (email.value!='') { 
			if (regexp.test(email.value) != true)
			{
				errorstr += "- Please enter valid email address.\n";
			}
		}				
	}		

	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		document.frmRegister.submit();
	}
}

function validateMerchantPassword(){
		var errorstr = '';
		var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
		var pass=document.frmPassword.password.value;
		with(document.frmPassword){ 	
			if (password.value=='') { errorstr += "- Please enter password.\n";}
			else if(pass.length < 7){
				errorstr +="- Password should be atleast 7 characters long.\n"; }
			if (confirmPass.value=='') { errorstr += "- Please enter confirm password.\n";}
			if (password.value != confirmPass.value) { errorstr += "- Please confirm your passwords.\n";}
		}	

		if (errorstr != ''){
			msgstr = msgstr + errorstr;
			alert(msgstr);
			return false;
		}else{
			document.frmPassword.submit();
		}
}

function validateMerchantFees(){
	var errorstr = '';
	var msgstr = "Sorry, we cannot complete your request.\nPlease make the following changes:\n\n";
	var flag=0;	
	with(document.frmRegister){ 	
		if (fees_price.value=='') { errorstr += "- Please enter fees.\n";}		
	}		
	if (errorstr != ''){
		msgstr = msgstr + errorstr;
		alert(msgstr);
		return false;
	}else{
		return true;
	}
}


	
/////////////////
