//function used to return the extension of the given file
function funCheckNumeric(strInput)
{
  if(strInput=="" || (strInput!="" && isNaN(strInput)))
   strOutput=0;
  else
   strOutput=strInput;
 
  return strOutput;
}

//function used to return the extension of the given file
function funGetFileExtension(strInputFile)
{
 var Extension="";
 if(trimAll(strInputFile)!="")
 {
   Filelength=strInputFile.length;
   indexofDot=strInputFile.indexOf(".");
   Extension=strInputFile.substring(indexofDot+1,Filelength);
 }

  return Extension;
}

function validUsCanadaZip(zip,coutnry)
{
	if(coutnry=="CA")
	{
		zip=zip.toUpperCase();
		if (zip.match(/^[A-Z][0-9][A-Z][0-9][A-Z][0-9]$/))
		{
			return true;
		}
		else if (zip.match(/^[A-Z][0-9][A-Z].[0-9][A-Z][0-9]$/))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else if(coutnry=="US")
	{
		if (zip.match(/^[0-9]{5}$/))
		{
			return true;
		}
		else if(zip.match(/^[0-9]{9}$/))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return true;
	}
	//alert('Please enter valid zip code.');
}

//function used get the y position of the given object
function findPosY(obj) {
 var curTop=0;
 if (obj.offsetParent){
  while(obj.offsetParent) {
   curTop+=obj.offsetTop;
   obj=obj.offsetParent;
  }
 } else if (obj.y){
  curTop+=obj.y;
 }
 return curTop;
}

//function used get the x position of the given object
function findPosX (obj){
 var curLeft=0;
 if (obj.offsetParent){
  while(obj.offsetParent) {
   curLeft+=obj.offsetLeft;
   obj=obj.offsetParent;
  }
 } else if (obj.x){
  curLeft+=obj.x;
 }
 return curLeft;
}

//function used to perform the array search for strings
function funChrArraySearch(arrInput,strElmnttoSrch)
{
   var BoolElmntExist= false;
   for(elmnt=0;elmnt<arrInput.length;elmnt++)
   {
	 //arrInput[elmnt]=trimAll(arrInput[elmnt]);
	 //strElmnttoSrch=trimAll(strElmnttoSrch);

     if(arrInput[elmnt]==strElmnttoSrch)
	  {
          BoolElmntExist= true;
		  break;
	  }
   }
  return BoolElmntExist;
}

//function used to check if the given date is valid or not
function funIsValidDate(strDate)
{
      var validate = false;

	   if(trimAll(strDate)!="")
	   {
		 var arrDate = strDate.split('/');
		 if(arrDate.length==3)
		 {
		   var month = trimAll(arrDate[0]);
		   var date= trimAll(arrDate[1]);
		   var year= trimAll(arrDate[2]);

		   if(isNaN(month) || isNaN(date) || isNaN(year) || month.length!=2|| date.length!=2|| year.length!=4)
			validate = false;
		   else
			 {
			  month = parseFloat(month);
		      date= parseFloat(date);
		      year= parseFloat(year);

			   if(month>0 && month<=12 && date>0 && date<=31 && year>2006)
			     validate = true;		
			 }
		}//arr length check ends
		
	  }//trimAll(strDate)!="" check ends
	  else
		  validate = true;

    return  validate;
}


function  validateString( strValue ) {
 var objRegExp  =  /(^[a-zA-Z]+$)/; 
  return objRegExp.test(strValue);
}
function  validateNumeric( strValue ) {
/******************************************************************************
DESCRIPTION: Validates that a string contains only valid numbers.

PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
******************************************************************************/
  var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/; 
 
  //check for numeric characters 
  return objRegExp.test(strValue);
}

function validateInteger( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only 
    valid integer number.
    
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
******************************************************************************/
  var objRegExp  = /(^-?\d\d*$)/;
 
  //check for integer characters
  return objRegExp.test(strValue);
}

function validateNotEmpty( strValue ) {
/************************************************
DESCRIPTION: Validates that a string is not all
  blank (whitespace) characters.
    
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/
   var strTemp = strValue;
   strTemp = trimAll(strTemp);
   if(strTemp.length > 0){
     return true;
   }  
   return false;
}

function validateEmail( strValue) {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid email pattern. 
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
   
REMARKS: Accounts for email with country appended
  does not validate that email contains valid URL
  type (.com, .gov, etc.) and optionally,
  a valid country suffix.  Since email has many
  forms this expression only tests for near valid
  address.  Some additional validation may be
  required.
*************************************************/
var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
  //check for valid email
  return objRegExp.test(strValue);
}

function rightTrim( strValue ) {
/************************************************
DESCRIPTION: Trims trailing whitespace chars.
    
PARAMETERS:
   strValue - String to be trimmed.  
      
RETURNS:
   Source string with right whitespaces removed.
*************************************************/
var objRegExp = /^([\w\W]*)(\b\s*)$/;
 
      if(objRegExp.test(strValue)) {
       //remove trailing a whitespace characters
       strValue = strValue.replace(objRegExp, '$1');
    }
  return strValue;
}

function leftTrim( strValue ) {
/************************************************
DESCRIPTION: Trims leading whitespace chars.
    
PARAMETERS:
   strValue - String to be trimmed
   
RETURNS:
   Source string with left whitespaces removed.
*************************************************/
var objRegExp = /^(\s*)(\b[\w\W]*)$/;
 
      if(objRegExp.test(strValue)) {
       //remove leading a whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}

function trimAll( strValue ) {
/************************************************
DESCRIPTION: Removes leading and trailing spaces.

PARAMETERS: Source string from which spaces will
  be removed;

RETURNS: Source string with whitespaces removed.
*************************************************/ 
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }
    
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}

function validateCurrency( strValue)  {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid currency format. 
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/
  var objRegExp = /(^\$\d{1,3}(,\d{3})*\.\d{2}$)|(^\(\$\d{1,3}(,\d{3})*\.\d{2}\)$)/;

  return objRegExp.test( strValue );
}

function validateTime ( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid 12 hour time format. Seconds are optional.
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.

REMARKS: Returns True for time formats such as:
  HH:MM or HH:MM:SS or HH:MM:SS.mmm (where the
  .mmm is milliseconds as used in SQL Server 
  datetime datatype.  Also, the .mmm portion will 
  accept 1 to 3 digits after the period)
*************************************************/
  var objRegExp = /^([1-9]|1[0-2]):[0-5]\d(:[0-5]\d(\.\d{1,3})?)?$/;

  return objRegExp.test( strValue );

}

function validateState (strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid state abbreviation. 
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/

var objRegExp = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i; 
  return objRegExp.test(strValue);
}

function validateSSN( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains a 
  valid social security number. 
  
 PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/
var objRegExp  = /^\d{3}\-\d{2}\-\d{4}$/;
 
  //check for valid SSN
  return objRegExp.test(strValue);

}
function validateUSPhone( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains valid
  US phone pattern. 
  Ex. (999) 999-9999 or (999)999-9999
  
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
*************************************************/
  var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;
 
  //check for valid us phone with or without space between 
  //area code
  return objRegExp.test(strValue); 
}


function validateUSZip( strValue ) {
/************************************************
DESCRIPTION: Validates that a string a United
  States zip code in 5 digit format or zip+4
  format. 99999 or 99999-9999
    
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.

*************************************************/
var objRegExp  = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
 
  //check for valid US Zipcode
  return objRegExp.test(strValue);
}



/*********paramasivan script starts************/

function validateUrl(strValue) 
	{ 
	var objRegExp=/^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.|http:\/\/|https:\/\/){1}([\w]+)(.[\w]+){1,2}$/;
	return objRegExp.test(strValue);
	} 

/*********paramasivan script ends************/

function replace(argvalue, x, y) {

  if ((x == y) || (parseInt(y.indexOf(x)) > -1)) {
    errmessage = "replace function error: \n";
    errmessage += "Second argument and third argument could be the same ";
    errmessage += "or third argument contains second argument.\n";
    errmessage += "This will create an infinite loop as it's replaced globally.";
    alert(errmessage);
    return false;
  }
    
  while (argvalue.indexOf(x) != -1) {
    var leading = argvalue.substring(0, argvalue.indexOf(x));
    var trailing = argvalue.substring(argvalue.indexOf(x) + x.length, 
	argvalue.length);
    argvalue = leading + y + trailing;
  }

  return argvalue;			
}

function validateUSDate( strValue ) {
/************************************************
DESCRIPTION: Validates that a string contains only 
    valid dates with 2 digit month, 2 digit day, 
    4 digit year. Date separator can be ., -, or /.
    Uses combination of regular expressions and 
    string parsing to validate date.
    Ex. mm/dd/yyyy or mm-dd-yyyy or mm.dd.yyyy
    
PARAMETERS:
   strValue - String to be tested for validity
   
RETURNS:
   True if valid, otherwise false.
   
REMARKS:
   Avoids some of the limitations of the Date.parse()
   method such as the date separator character.
*************************************************/
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
 
  //check to see if in correct format
  if(!objRegExp.test(strValue))
    return false; //doesn't match pattern, bad date
  else{
    var arrayDate = strValue.split(RegExp.$1); //split date into month, day, year
	var intDay = parseInt(arrayDate[1],10); 
	var intYear = parseInt(arrayDate[2],10);
    var intMonth = parseInt(arrayDate[0],10);
	
	//check for valid month
	if(intMonth > 12 || intMonth < 1) {
		return false;
	}
	
    //create a lookup for months not equal to Feb.
    var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
                        '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
  
    //check if month value and day value agree
    if(arrayLookup[arrayDate[0]] != null) {
      if(intDay <= arrayLookup[arrayDate[0]] && intDay != 0)
        return true; //found in lookup table, good date
    }
		
    //check for February
	var booLeapYear = (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0));
    if( ((booLeapYear && intDay <= 29) || (!booLeapYear && intDay <=28)) && intDay !=0)
      return true; //Feb. had valid number of days
  }
  return false; //any other values, bad date
}

function validateValue( strValue, strMatchPattern ) {
/************************************************
DESCRIPTION: Validates that a string a matches
  a valid regular expression value.
    
PARAMETERS:
   strValue - String to be tested for validity
   strMatchPattern - String containing a valid
      regular expression match pattern.
      
RETURNS:
   True if valid, otherwise false.
*************************************************/
var objRegExp = new RegExp( strMatchPattern);
 
 //check if string matches pattern
 return objRegExp.test(strValue);
}


function removeCurrency( strValue ) {
/************************************************
DESCRIPTION: Removes currency formatting from 
  source string.
  
PARAMETERS: 
  strValue - Source string from which currency formatting
     will be removed;

RETURNS: Source string with commas removed.
*************************************************/
  var objRegExp = /\(/;
  var strMinus = '';
 
  //check if negative
  if(objRegExp.test(strValue)){
    strMinus = '-';
  }
  
  objRegExp = /\)|\(|[,]/g;
  strValue = strValue.replace(objRegExp,'');
  if(strValue.indexOf('$') >= 0){
    strValue = strValue.substring(1, strValue.length);
  }
  return strMinus + strValue;
}

function addCurrency( strValue ) {
/************************************************
DESCRIPTION: Formats a number as currency.

PARAMETERS: 
  strValue - Source string to be formatted

REMARKS: Assumes number passed is a valid 
  numeric value in the rounded to 2 decimal 
  places.  If not, returns original value.
*************************************************/
  var objRegExp = /-?[0-9]+\.[0-9]{2}$/;
   
    if( objRegExp.test(strValue)) {
      objRegExp.compile('^-');
      strValue = addCommas(strValue);
      if (objRegExp.test(strValue)){
        strValue = '($' + strValue.replace(objRegExp,'') + ')';
      }
      else {
        strValue = '$' + strValue;
      }
      return  strValue;
    }
    else
      return strValue;
}

function removeCommas( strValue ) {
/************************************************
DESCRIPTION: Removes commas from source string.

PARAMETERS: 
  strValue - Source string from which commas will 
    be removed;

RETURNS: Source string with commas removed.
*************************************************/
  var objRegExp = /,/g; //search for commas globally
 
  //replace all matches with empty strings
  return strValue.replace(objRegExp,'');
}

function addCommas( strValue ) {
/************************************************
DESCRIPTION: Inserts commas into numeric string.

PARAMETERS: 
  strValue - source string containing commas.
  
RETURNS: String modified with comma grouping if
  source was all numeric, otherwise source is 
  returned.
  
REMARKS: Used with integers or numbers with
  2 or less decimal places.
*************************************************/
  var objRegExp  = new RegExp('(-?[0-9]+)([0-9]{3})'); 

    //check for match to search criteria
    while(objRegExp.test(strValue)) {
       //replace original string with first group match, 
       //a comma, then second group match
       strValue = strValue.replace(objRegExp, '$1,$2');
    }
  return strValue;
}

function removeCharacters( strValue, strMatchPattern ) {
/************************************************
DESCRIPTION: Removes characters from a source string
  based upon matches of the supplied pattern.

PARAMETERS: 
  strValue - source string containing number.
  
RETURNS: String modified with characters
  matching search pattern removed
  
USAGE:  strNoSpaces = removeCharacters( ' sfdf  dfd', 
                                '\s*')
*************************************************/
 var objRegExp =  new RegExp( strMatchPattern, 'gi' );
 
 //replace passed pattern matches with blanks
  return strValue.replace(objRegExp,'');
}


//function for validating credit card number

function is_valid_credit_card_number(cardNumber, cardType)//sample card type visa no 4992739871642 
{
  //alert(cardType);
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "mastercard","MasterCard":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "visa","Visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "amex","Amex":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;
	  case "discover","Discover":
		lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^6011/;
        break;  
      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }
  //isValid=true;	
  return isValid;
}

//to check for numeric
function IsNumeric(sText)
{
   var ValidChars = "0123456789.,";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}
//function used for paging starts here

//function used for paging ends here
//function used to validate multiple drop down datas
function  fun_checkMultipleselectdropdown_values(formname,ctrlname,selectedCountrynames)
{
	with(document.forms[formname])
	{
		if(selectedCountrynames!="")
		{
			for (var i=1; i < elements[ctrlname].options.length; i++)
			{
			optionValue =elements[ctrlname].options[i].value;
			if (selectedCountrynames.indexOf(optionValue)>=0)
			   elements[ctrlname].options[i].selected =true;
			}
		}
	}
}

//// function used to make all check boxes to be true or false
///by clicking the one common checkbox    
function fun_checkall(formname,parent_ctrlname,child_ctrlname,numofrows)
{
	with(document.forms[formname])
	{
      if(elements[parent_ctrlname].checked==true)
	  {
	   for(chkbx=1;chkbx<=numofrows;chkbx++)
	   {
	      chkbx_id=child_ctrlname+chkbx;
	     elements[chkbx_id].checked=true;
		}
	   }
	  else
	     {
	     for(chkbx=1;chkbx<=numofrows;chkbx++)
	      {
	       chkbx_id=child_ctrlname+chkbx;
	       elements[chkbx_id].checked=false;
		  }
		}
    }
}

/****function for paging statrs*******/
function pagetransfer(pagenumber,formname)
{	
	with(document.forms[formname])
	{
		target="";
		hdn_page.value=pagenumber;
		hdn_mode.value="paging";
		submit();
	}
}
/****function for paging ends*******/

//function used to find the checked check boxes
function fun_find_checkedbox(formname,ctrlname,numofrows)
{
 with(document.forms[formname])
 {
  chkd=false;
  for(chkbx=1;chkbx<=numofrows;chkbx++)
  {
   chkbx_id=ctrlname+chkbx;
   if((elements[chkbx_id].checked==true))
	{        
     chkd=true; 
	 break;
	}
  }
 }
 return  chkd ;
}

///function used to submit the form if atleast one check box has been checked 
///when clicking on the delete button
function fun_DeleteMessages(formname,ctrlname,numofrows)
{
	if(fun_find_checkedbox(formname,ctrlname,numofrows)==false)
	{
		alert("Please select the messages to delete");
		return false;
	}
	else if (confirm("Are you sure want to delete this messages?"))
    {			
	 document.forms[formname].hdn_mode.value="delete";
	 document.forms[formname].submit();
	}
}


//function used to validate the  change password form when
///clicking on the enter key
function enter_key_for_change_pwd_page(e)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	  change_pwd_validation();
	}
}

//function used to validate the  change password form  starts
function change_pwd_validation()
{
	with(document.change_password_frm)
	{
		if(old_pwd.value=="")
		{
			alert("Enter your current password.");
			old_pwd.focus();
			return false;
		}
		else if(new_pwd.value=="")
		{
			alert("Enter your new password.");
			new_pwd.focus();
			return false;
		}
		else if(new_pwd.value.length<4 || new_pwd.value.length>10)
		{
			alert("The password should contains 4 to 10 characters.");
			new_pwd.focus();
			return false;
		}
		else if(confirm_pwd.value=="")
		{
			alert("Confirm your password.");
			confirm_pwd.focus();
			return false;
		}
      	else if(confirm_pwd.value!=new_pwd.value)
		{
			alert("Confirm password doesn't match with the new password.");
			confirm_pwd.focus();
			return false;
		}
		else
		{
		hdn_mode.value="change_password";
		return true;
		}
	}
}

//function used to validate the  change password fom ends

//function used to validate the manage seminar form  starts
function fun_manageSeminar(formname)
{
	with(document.forms[formname])
	{
		alert(formname);
		var numOfDimensions =hidd_num_dimensions.value;

		if(trimAll(drpdwn_category.value)=="")
		{
		  alert("Please select category name.");
		  drpdwn_category.focus();
		  return false;
		}
		else if(trimAll(txt_seminartitle.value)=="")
		{
		  alert("Please enter the title.");
		  txt_seminartitle.focus();
		  return false;
		}
		
		 	imgvalue=trimAll(txt_SeminarImage.value);
			if((imgvalue)!="")
			{	
				var ary = imgvalue.split(".");
				var ext = ary[ary.length-1].toLowerCase();
				
				if((ext=="jpeg")||(ext=="jpg")||(ext=="gif"))
				{
					///sd
				}
				else
				{
					alert("You have selected a "+ ext +" file, please Select Image file of type jpg,jpeg or gif");
					txt_ProductImage.focus();
					return false;
				}
			}
	
		submit();
		return true;
	}
}

//function used to validate the manage seminar form  ends

//function  used to pass the orderid when clicking on the 
//print button from order details page admin side
function funPrintReport(formename)
{	
with(document.forms[formename])
	{
	  var orderid = hdn_orderid.value;
      window.open("printreport.php?orderId="+orderid, "PrintDetails","top=0,left=0,width=600,height=600,resizable=yes,scrollbars=yes,top=100,left=100");  
	}
}


/********** function used to printing pages starts******/
function printpreview()
{
document.getElementById("btn_close").style.display="none";
document.getElementById("btn_print").style.display="none";
window.print();

//window.content.focus();

/*
var OLECMDID = 7;
/* OLECMDID values:
* 6 - print
* 7 - print preview
* 1 - open window
* 4 - Save As
*/
/*
var PROMPT = 1; // 2 DONTPROMPTUSER 
var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 
WebBrowser1.ExecWB(OLECMDID, PROMPT);
WebBrowser1.outerHTML = "";*/
}
/********** function used to printing pages ends******/

//function used to validate registration form starts


//function used to validate login form starts
function enter_key_for_forget_pwd_page(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	 forget_pwd_validation(formname);
	}
}

//function  used to validate forgot password form
function forget_pwd_validation(formname)
{	
with(document.forms[formname])
	{
	   if(trimAll(txt_UserEmail.value)=="")
		{
			alert("Please enter your email");
			txt_UserEmail.focus();
			return false;
		}	
		else if(!(validateEmail(trimAll(txt_UserEmail.value))))
		{
			alert("Please enter valid email address!");
			txt_UserEmail.focus(); 
			return false;
		}
		else
		{
 		 return true;
		}
	}
}

//function used to validate settings form starts here

function enter_key_for_user_registration_page(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	  validate_register(formname);
	}
}

function validate_register(formname)
{
	with(document.forms[formname])
	{
		var usrPass = TxtPassword.value;
		var userpasslength = usrPass.length;

		if(trimAll(TxtEmail.value)=="")
		{
			alert("Please enter Email Address");
			TxtEmail.focus();
			return false;
		}
		else if(!(validateEmail(trimAll(TxtEmail.value))))
			{
				alert("Please enter valid email address!");
				TxtEmail.focus(); 
				return false;
			}
		else if(trimAll(TxtPassword.value)=="")
		{
			alert("Please enter password");
			TxtPassword.focus();
			return false;
		}
		else if(userpasslength < 4 || userpasslength > 10)
		{
			alert("The password should contains 4 to 10 characters");
			TxtPassword.focus();
			return false;
		}	
		else if(trimAll(TxtRetypePassword.value)=="")
		{
			alert("Please re-enter password for confirmation");
			TxtRetypePassword.focus();
			return false;
		}	
		else if(trimAll(TxtPassword.value) != trimAll(TxtRetypePassword.value))
		{
			alert("Password and confirm password not matched.");
			TxtRetypePassword.focus();
		    return false;
		}
		else if(trimAll(drpdwn_country.value) == "")
		{
			//check for the country
			alert("Please select country.");
			drpdwn_country.focus();
			return false;
		}
		else if(trimAll(drpdwn_country.value)=="US" && trimAll(TxtZipcode.value)=="")
		{
			alert("Please enter Zip Code.");
			TxtZipcode.focus();
			return false;
		}
		/*else if(trimAll(TxtZipcode.value) == "")
		{
			alert("Please enter zipcode.");
			TxtZipcode.focus();
			return false;
		}*/
		/*else if(trimAll(TxtZipcode.value)!="" )
		{
			 if(!validateNumeric(TxtZipcode.value))
			 {
               if(trimAll(drpdwn_country.value)=="US")  
				alert("Zip Code shoud be numeric");
			   else
				alert("Postal Code shoud be numeric");

				TxtZipcode.focus();
				return false;
			 }
		}*/
		else if(trimAll(drpdwn_hearFrom.value) == "Affiliate")
		{
			if(trimAll(TxtRefCode.value) == "")
			{
				alert("Please enter reference code.");
				TxtRefCode.focus();
				return false;
			}
		}
		
		HiddenMode.value="register";
		submit();
		return true;
	}
}

//function used to validate login form starts
function enter_key_for_login_page(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	  login_validation(formname);
	}
}

function login_validation(formname)
{		

	with(document.forms[formname])
	{
		
              if(trimAll(loginemail.value)=="")
				  {
					alert("Please enter email address.");
					loginemail.focus(); 
					return false;
				   }
				else if(!(validateEmail(trimAll(loginemail.value))))
				{
					alert("Please enter valid email address!");
					loginemail.focus(); 
					return false;
				}
				else if(trimAll(loginpassword.value)=="")
					{
					alert("Please enter password.");
					loginpassword.focus(); 
					return false;
					}
				 else
		        {
				 hdn_mode.value="login";
				 submit();
				 return true;
				}
	}
}
//function used to validate  login form ends

//function used to validate login form starts
function enter_key_for_adminlogin_page(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	  adminlogin_validation(formname);
	}
}

function adminlogin_validation(formname)
{		
	with(document.forms[formname])
	{
		if(trimAll(txtbx_username.value)=="")
		{
			alert("Please enter username.");
			txtbx_username.focus(); 
			return false;
		}
		else if(txtbx_pass.value=="")
		{
			alert("Please enter password.");
			txtbx_pass.focus(); 
			return false;
		}
		else
		{
			hdn_mode.value="login";
			submit();
			return true;
		}
	}
}
//function used to validate login form ends

//function used maintaining the paging of listing datas
function funadminpagetransfer(pagenumber,formname)
{	
	with(document.forms[formname])
	{  	
		HdnPage.value=pagenumber;
		HiddenMode.value="paging";
		submit();
	}
}

//  functio for enter kay press event in registration page.
function enter_key_for_edit_profile_page(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	 validate_edit_profile(formname);
	}
}

function validate_edit_profile(formname)
{
	with(document.forms[formname])
	{
		
		if(trimAll(TxtEmail.value)=="")
		{
			alert("Please enter email address");
			TxtEmail.focus();
			return false;
		}
		else if(!(validateEmail(trimAll(TxtEmail.value))))
		{
			alert("Please enter valid email address");
			TxtEmail.focus(); 
			return false;
		}
		else if(trimAll(TxtFirstName.value)=="")
		{
			alert("Please enter first name");
			TxtFirstName.focus();
			return false;
		}
		else if(trimAll(TxtLastName.value)=="")
		{
			alert("Please enter last name");
			TxtLastName.focus();
			return false;
		}
		else if(trimAll(TxtAddress1.value)=="")
		{
			alert("Please enter Address1");
			TxtAddress1.focus();
			return false;
		}
		else if(trimAll(TxtCity.value)=="")
		{
			alert("Please enter city");
			TxtCity.focus();
			return false;
		}
		else if(trimAll(drpdwn_country.value)=="")
		{
			alert("Please select country");
			drpdwn_country.focus();
			return false;
		}
		else if(trimAll(drpdwn_country.value)=="US" && trimAll(TxtState.value)=="")
		{
			alert("Please select state");
			TxtState.focus();
			return false;
		}
		else if(trimAll(drpdwn_country.value)!="US" && trimAll(txt_Shipstate.value)=="")
		{
			alert("Please enter the state");
			txt_Shipstate.focus();
			return false;
		}
		else if(trimAll(drpdwn_country.value)=="US" && trimAll(TXtZipcode.value)=="")
		{
			alert("Please enter Zip Code");
			TXtZipcode.focus();
			return false;
		}
	/*	else if(trimAll(TXtZipcode.value)!="")
		{
		  if(!validateNumeric(TXtZipcode.value))
		  {
			if(trimAll(drpdwn_country.value)=="US")
			 alert("Zip Code shoud be numeric");
			else
			 alert("Postal Code shoud be numeric");

			TXtZipcode.focus();
			return false;
		  }
		}*/
        else if(trimAll(TxtPhoneNumber.value)=="")
		{
			alert("Please enter phone number");
			TxtPhoneNumber.focus();
			return false;
		}
		/* if(!(validateNumeric(TxtPhoneNumber.value)))
		{
			alert("Phone number shoud be numeric");
			TxtPhoneNumber.focus();
			return false;
		}*/
		if(document.getElementById("lbl_cardnumTxtBx").style.display=="")
		{
			if(trimAll(txt_CreditCardNum.value)=="")
			{
				alert("Please enter credit card number");
				txt_CreditCardNum.focus();
				return false;
			}
			else if(!(validateNumeric(txt_CreditCardNum.value)))
			{
				alert("Card number should be numeric");
				txt_CreditCardNum.focus();
				return false;
			}
			else if(trimAll(txt_CreditCardNum.value)!="")
			{
					var ccNumb=txt_CreditCardNum.value;
					var valid = "0123456789";
					var len = ccNumb.length;  
					var iCCN = parseInt(ccNumb);  
					var sCCN = ccNumb.toString();  
					sCCN = sCCN.replace (/^\s+|\s+$/g,'');  
					var iTotal = 0;  
					var bNum = true;  
					var bResult = false;  
					var temp;  // temp variable for parsing string
					var calc;  // used for calculation of each digit

					//ccNumb is a number and the proper length - let's see if it is a valid card number
					if(len >= 13 && len <=16)
					{  // 15 or 16 for Amex or V/MC					
							for(var i=len;i>0;i--)
								{  // LOOP throught the digits of the card
									  calc = parseInt(iCCN) % 10;  // right most digit
									  calc = parseInt(calc);  // assure it is an integer
									  iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
									  i--;  // decrement the count - move to the next digit in the card
									  iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
									  calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
									  calc = calc *2;                                 // multiply the digit by two
									  // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
									  // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
									  switch(calc)
									  {
										case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
										case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
										case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
										case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
										case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
										default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
									  }                                               
									iCCN = iCCN / 10;  // subtracts right most digit from ccNum
									iTotal += calc;  // running total of the card number as we loop
								}  // END OF LOOP
						  if(! ((iTotal%10)==0))
							{
								alert("Please enter valid credit card number");
								txt_CreditCardNum.focus();
								return false;
							}						
					}	
					else
					{
						alert("Please enter valid credit card number");
						txt_CreditCardNum.focus();
						return false;
					}
			} 
		}		

		if(trimAll(SelcardType.value)=="")
		{
			alert("Please select credit card type");
			SelcardType.focus();
			return false;
		}
		else if(trimAll(TxtVerificationNumber.value)=="")
		{
			alert("Please enter card verification number");
			TxtVerificationNumber.focus();
			return false;
		}
		else if(!(validateNumeric(TxtVerificationNumber.value)))
		{
			alert("Card verification number should be numeric");
			TxtVerificationNumber.focus();
			return false;
		}	
		else if(trimAll(SelExpiryMonth.value)=="")
		{
			alert("Please select card Expiration month");
			SelExpiryMonth.focus();
			return false;
		}
		else if(trimAll(SelExpiryYear.value)=="")
		{
			alert("Please select card Expiration year");
			SelExpiryYear.focus();
			return false;
		}
		else if(trimAll(TxtBillingAddress1.value)=="")
		{
			alert("Please enter billing address");
			TxtBillingAddress1.focus();
			return false;
		}
		else if(trimAll(TxtBillingCity.value)=="")
		{
			alert("Please enter billing city");
			TxtBillingCity.focus();
			return false;
		}
		else if(trimAll(drpdwn_billing_country.value)=="")
		{
			alert("Please select billing country");
			drpdwn_billing_country.focus();
			return false;
		}
		else if(trimAll(drpdwn_billing_country.value)=="US" && trimAll(TxtBillingState.value)=="")
		{
			alert("Please select billing state");
			TxtBillingState.focus();
			return false;
		}
		else if(trimAll(drpdwn_billing_country.value)=="US" && trimAll(TxtBillingZipcode.value)=="")
		{
			alert("Please select billing Zip Code");
			TxtBillingZipcode.focus();
			return false;
		}
		else if(trimAll(drpdwn_billing_country.value)!="US" && trimAll(txt_Blngstate.value)=="")
		{
			alert("Please select enter billing state");
			txt_Blngstate.focus();
			return false;
		}
		/*else if(trimAll(TxtBillingZipcode.value)!="")
		{
		  if(!validateNumeric(TxtBillingZipcode.value))
		  {
			if(trimAll(drpdwn_billing_country.value)=="US")
			 alert("Zip Code shoud be numeric");
			else
			 alert("Postal Code shoud be numeric");

			TxtBillingZipcode.focus();
			return false;
		  }
		}*/
       else	if(trimAll(TxtBillingPhoneNumber.value)=="")
		{
			alert("Please enter billing phone number");
			TxtBillingPhoneNumber.focus();
			return false;
		}
		/* if(!(validateNumeric(TxtBillingPhoneNumber.value)))
		{
			alert("Billing phone number should be numeric");
			TxtBillingPhoneNumber.focus();
			return false;
		}*/

		/*if(ChkBillingSame.checked==false)
		{
			if(TxtShippingAddress1.value=="")
			{
				alert("Please enter shipping Address!");
				TxtShippingAddress1.focus();
				return false;
			}
			if(TxtShippingCity.value=="")
			{
				alert("Please enter shipping City!");
				TxtShippingCity.focus();
				return false;
			}
			if(TxtShippingState.value=="")
			{
				alert("Please select shipping State!");
				TxtShippingState.focus();
				return false;
			}
			if(TxtShippingZipcode.value=="")
			{
				alert("Please enter shipping zipcode!");
				TxtShippingZipcode.focus();
				return false;
			}
			if(drpdwn_shipping_country.value=="")
			{
				alert("Please select shipping country!");
				drpdwn_shipping_country.focus();
				return false;
			}
			if(TxtShippingPhoneNumber.value=="")
			{
				alert("Please enter shipping phone number!");
				TxtShippingPhoneNumber.focus();
				return false;
			}
		}*/
		HiddenMode.value="edit";
		submit();
		return true;
	}
}


//  functio for enter kay press event in registration page.
function funEnterKeyForAdminEditProfile(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	 funValidateEditProfileAdminSide(formname);
	}
}

function funValidateEditProfileAdminSide(formname)
{
	with(document.forms[formname])
	{
		var show_card =document.getElementById("hdn_showCard").value;
		var edit_card =document.getElementById("hdn_editCard").value;


		if(trimAll(TxtEmail.value)=="")
		{
			alert("Please enter email address!");
			TxtEmail.focus();
			return false;
		}
		 if(!(validateEmail(trimAll(TxtEmail.value))))
		{
				alert("Please enter valid email address!");
				TxtEmail.focus(); 
				return false;
		}
		 if(trimAll(drpdwn_country.value)=="")
		{
			alert("Please select country !");
			drpdwn_country.focus();
			return false;
		}
		 if(trimAll(drpdwn_country.value)=="US" && trimAll(TXtZipcode.value)=="")
		{
			alert("Please enter zipcode!");
			TXtZipcode.focus();
			return false;
		}
		/* if(trimAll(TXtZipcode.value)!="")
		{
			 if(!validateNumeric(TXtZipcode.value))
			 {
				alert("Zipcode shoud be numeric");
				TXtZipcode.focus();
				return false;
			 }
		}*/	
		if(show_card=="yes" || edit_card=="yes")
		{
			if(edit_card=="yes")
			{
				 if(trimAll(TxtCreditCardNumber.value)!="")
				 {
					  if(!(validateNumeric(TxtCreditCardNumber.value)))
						{
							alert("Card number should be numeric");
							TxtCreditCardNumber.focus();
							return false;
						}
						var ccNumb=TxtCreditCardNumber.value;
						var valid = "0123456789";
						var len = ccNumb.length;  
						var iCCN = parseInt(ccNumb);  
						var sCCN = ccNumb.toString();  
						sCCN = sCCN.replace (/^\s+|\s+$/g,'');  
						var iTotal = 0;  
						var bNum = true;  
						var bResult = false;  
						var temp;  // temp variable for parsing string
						var calc;  // used for calculation of each digit


						// ccNumb is a number and the proper length - let's see if it is a valid card number
						if(len >= 13 && len <=16)
						{  // 15 or 16 for Amex or V/MC					
								for(var i=len;i>0;i--)
									{  // LOOP throught the digits of the card
										  calc = parseInt(iCCN) % 10;  // right most digit
										  calc = parseInt(calc);  // assure it is an integer
										  iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
										  i--;  // decrement the count - move to the next digit in the card
										  iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
										  calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
										  calc = calc *2;                                 // multiply the digit by two
										  // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
										  // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
										  switch(calc)
										  {
											case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
											case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
											case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
											case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
											case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
											default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
										  }                                               
										iCCN = iCCN / 10;  // subtracts right most digit from ccNum
										iTotal += calc;  // running total of the card number as we loop
									}  // END OF LOOP
							  if(!((iTotal%10)==0))
								{
									alert("Please enter valid credit card number");
									TxtCreditCardNumber.focus();
									return false;
								}						
						}	
						else
							{
								alert("Please enter valid credit card number");
								TxtCreditCardNumber.focus();
								return false;
							}
				} 
			}
		}
			
		HiddenMode.value="edit";
		return true;	
	}
}

//function used to fill/unfill the shipping and billing 
//informations according to the "Use the shipping address as the billing address" checkbox selection
function func_shipping_details(formname)
{
	with(document.forms[formname])
	{	
	   if(ChkBillingSame.checked==true)
	   { 
			TxtBillingAddress1.value =trimAll(TxtAddress1.value);
			TxtBillingAddress2.value = trimAll(TxtAddress2.value);
			TxtBillingCity.value = trimAll(TxtCity.value);
			TxtBillingState.value = trimAll(TxtState.value);
			drpdwn_billing_country.value = trimAll(drpdwn_country.value);
			TxtBillingZipcode.value = trimAll(TXtZipcode.value);
			TxtBillingPhoneNumber.value = trimAll(TxtPhoneNumber.value);       
	   }
       else if(ChkBillingSame.checked ==false)
	   {		  
			TxtBillingAddress1.value = "";
			TxtBillingAddress2.value = "";
			TxtBillingCity.value = "";
			TxtBillingState.value = "";
			drpdwn_billing_country.value="";
			TxtBillingZipcode.value= "";
			TxtBillingPhoneNumber.value="";
	   }		
	}
}

function funsharephotos(formname,page_from,ChkBxCtrlNmPrfx,CtrlNmNumofChkBxs)
{
	with(document.forms[formname])
	{	
		numofChkBxs = parseInt(elements[CtrlNmNumofChkBxs].value);
		if(fun_find_checkedbox(formname,ChkBxCtrlNmPrfx,numofChkBxs)==false)
		{
		  if(page_from=="galleries")
           alert("Please select the gallery to share");
		  else
		   alert("Please select the album or photos to share");
		}
		else
		{
		 hdn_mode.value="share";   
		 hdn_return.value=page_from;
		 action = "sharephotos.php";
		 submit();
		}
	}
}

function sortbyname(formname,type,order)
{
	with(document.forms[formname])
	{
		HiddenSort.value="yes";
		HiddenSortBy.value=type;
		HiddenSortingOrder.value=order;
		submit();
	}
}

//function used to validate the reset password form  starts
function funResetPass(formname)
{
	with(document.forms[formname])
	{
		if(txt_pwd.value=="")
		{
			alert("Enter your new password.");
			txt_pwd.focus();
			return false;
		}
		else if(txt_pwd.value.length<4 || txt_pwd.value.length>10)
		{
			alert("The password should contains 4 to 10 characters.");
			txt_pwd.focus();
			return false;
		}
		else if(txt_confirmpwd.value=="")
		{
			alert("Confirm your password.");
			txt_confirmpwd.focus();
			return false;
		}
      	else if(txt_confirmpwd.value!=txt_pwd.value)
		{
			alert("Confirm password doesn't match with the new password.");
			txt_confirmpwd.focus();
			return false;
		}
		else
		{
		 hdn_mode.value="change_password";
		 return true;
		}
	}
}

//function used to redirect admin page when the particular
//page has not been accessed more than half an hour
function funRedirectAdminPage()
{
 window.close();	
 window.opener.document.location.href="admin_home.php";
}

//functions used to change the frmae for the
//galeery photos when mouse over and out
function funFrameOver(ctrlid)
{
  document.getElementById(ctrlid).className="FramebckrndOver";
}
function funFrameOut(ctrlid)
{
  document.getElementById(ctrlid).className="FramebckrndOut";
}

//function used to find the atleast one of the radio button is
//selected from the given  set of radio buttons
function funFindRadioBtnSelctn(formname,CtrlNm,NumOfCtrls)
{
	var Chkd = false;
	with(document.forms[formname])
	{
		for (var rdbtn=0; rdbtn < NumOfCtrls; rdbtn++)
		{
			if(elements[CtrlNm][rdbtn].checked==true)
			{
				Chkd = true; 
				break;
			}
		}//for loop ends
	}

	return Chkd
}

function funGalRedirectAdminSide(strSrvr)
{
  var strUrl = "galleries.php";
  if(strSrvr=="live")
  {
   strUrl = "http://www.scandigital.com/admin/galleries.php";
  }
  document.location.href =strUrl;
}

//function used to show the mouse over frame for the galleries that
//having more than one photos 
function funShowOverImg_old(strid,strType)
{	
	 if(strType=="mouseover")
	 {
	  document.getElementById("OutTbl_"+strid).style.display="none";
	  document.getElementById("OverTbl_"+strid).style.display="";
	 }
	 else
	 {
	  document.getElementById("OutTbl_"+strid).style.display="";
	  document.getElementById("OverTbl_"+strid).style.display="none";
	 }
}

//functions used to change the frmae for the
//gallery photos when mouse over and out
function funShowOverImg(strid,strType)
{
	arrDivIds=new  Array("dv_top","dv_btm","dv_lft","dv_rgtht","dv_btmleft","dv_btmrght","dv_topleft","dv_toprght");
	arrDivClasses=new  Array("t","b","l","r","bl","br","tl","tr");
	var strClsName="Out_";
	if(strType=="mouseover")
	strClsName="Over_";

	for(dv=0;dv<arrDivIds.length;dv++)
	{
		ctrlname= arrDivIds[dv]+strid;
		document.getElementById(ctrlname).className=strClsName+arrDivClasses[dv];
	}
}

//function used to change the caption of the zipcode field
//the caption should be "Zip Code:" if the selected country is "US"
//otherwise the caption is "Postal Code"
function funCountryChange(formname,DrpdwnCtrlName,ZipCaptnCtrlName)
{
	with(document.forms[formname])
	{
		var strCaption="Postal Code:";
		if(trimAll(document.getElementById(DrpdwnCtrlName).value)=="US")
		{
			strCaption="Zip Code:";

			if(DrpdwnCtrlName=="drpdwn_country")
			{
				document.getElementById("TxtState").style.display="";
				document.getElementById("txt_Shipstate").style.display="none";
			}
			else if(DrpdwnCtrlName=="drpdwn_billing_country")
			{
				document.getElementById("TxtBillingState").style.display="";
				document.getElementById("txt_Blngstate").style.display="none";
			}
		}
		else
		{
			if(DrpdwnCtrlName=="drpdwn_country")
			{
				document.getElementById("TxtState").style.display="none";
				document.getElementById("txt_Shipstate").style.display="";
			}
			else if(DrpdwnCtrlName=="drpdwn_billing_country")
			{
				document.getElementById("TxtBillingState").style.display="none";
				document.getElementById("txt_Blngstate").style.display="";
			}
		}

		document.getElementById(ZipCaptnCtrlName).innerHTML=strCaption+"&nbsp;";
		if(DrpdwnCtrlName=="drpdwn_ShpngCountry")
		{
			//function used to fill the billing info same as shipping info
			funFillBillingAddress(6);
			funCountryChange(formname,'drpdwn_BlngCountry','td_BlngPostalCode');
		}
	}
}

function funcValidateCreditCardNum(CreditCardNum)
{
	var ccNumb=CreditCardNum;
	var valid = "0123456789";
	var len = ccNumb.length;  
	var iCCN = parseInt(ccNumb);  
	var sCCN = ccNumb.toString();  
	sCCN = sCCN.replace (/^\s+|\s+$/g,'');  
	var iTotal = 0;  
	var bNum = true;  
	var bResult = false;  
	var temp;  // temp variable for parsing string
	var calc;  // used for calculation of each digit


	// ccNumb is a number and the proper length - let's see if it is a valid card number
	if(len >= 13 && len <=16)
	{  // 15 or 16 for Amex or V/MC					
			for(var i=len;i>0;i--)
				{  // LOOP throught the digits of the card
					  calc = parseInt(iCCN) % 10;  // right most digit
					  calc = parseInt(calc);  // assure it is an integer
					  iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
					  i--;  // decrement the count - move to the next digit in the card
					  iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
					  calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
					  calc = calc *2;                                 // multiply the digit by two
					  // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
					  // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
					  switch(calc)
					  {
						case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
						case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
						case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
						case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
						case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
						default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
					  }                                               
					iCCN = iCCN / 10;  // subtracts right most digit from ccNum
					iTotal += calc;  // running total of the card number as we loop
				}  // END OF LOOP
		  if(! ((iTotal%10)==0))
			{
				//alert("Please enter valid credit card number");
				//document.getElementById("txt_CreditCardNum").focus();
				return false;
			}	
	}	
	else
	{
		//alert("Please enter valid credit card number");
		//document.getElementById("txt_CreditCardNum").focus();
		return false;
	}
}


//Authentication page validation
//function used to validate login form starts
function enter_key_for_authenlogin_page(e,formname)
{
	if(e.keyCode==13)
	{
	 if (navigator.appName=="Netscape")
	 {
	  e.preventDefault();
	 }
	else
	  e.keyCode=0;
	  authenlogin_validation(formname);
	}
}

function authenlogin_validation(formname)
{		
	with(document.forms[formname])
	{
	  if(trimAll(txt_authen_user.value)=="")
		  {
			alert("Please enter username.");
			txt_authen_user.focus(); 
			return false;
		   }
		else if(txt_authen_pass.value=="")
			{
			alert("Please enter password.");
			txt_authen_pass.focus(); 
			return false;
			}
		 else
		{
		 hdn_mode.value="login";
		 submit();
		 return true;
		}
	}
}

//check for special characters
function CheckSpecialCharacters(StrName)
{
	var flag=0;
	var SpecialCharArray= new Array("<",">","=","/","$","?","\\");
	for (i=0; i <SpecialCharArray.length; i++) 
		{
			var ArrayName = SpecialCharArray[i].toLowerCase();
			if(StrName.indexOf(ArrayName)>=0) 
			{
				flag=1;
				break;
			}
		}
	if(flag==1)
	{	
		return true;					
	}
}

//function used to open popup window when the user clicking
//on the view slide show details
function funPlayAudio(formname,intAudioId)
{
	with(document.forms[formname])
	{		     
	  window.open('play_audio.php?AudioId='+intAudioId,'playaudio','top=40,left=60,width=300,height=275,resizable=yes,scrollbars=yes');
	}
}

//function used to validates the gift card  form
function funValidateMemoryMakers()
{	
	with(document.forms['frmMemoryMakers'])
	{ 
	    if(trimAll(txt_fname.value)=="")
		{
		 alert("Please enter first name");		
		 txt_fname.focus();		 
		 return false;
		}
	   else if(trimAll(txt_lname.value)=="")
		{
		 alert("Please enter last name");		
		 txt_lname.focus();		 
		 return false;
		} 
		else if(trimAll(txt_Email.value)=="" || !(validateEmail(trimAll(txt_Email.value))))
		{
			alert("Please enter valid email address");
			txt_Email.focus(); 
			return false;
		}
		else if(trimAll(txt_address1.value)=="")
		{
		 alert("Please enter your address");		
		 txt_address1.focus();
		 return false;
		} 
		else if(trimAll(txt_City.value)=="")
		{
		 alert("Please enter city");		
		 txt_City.focus();
		 return false;
		}
		else if(trimAll(drpdwn_Country.value)=="US" && trimAll(drpdwn_state.value)=="")
		{
		 alert("Please select state");		
		 drpdwn_state.focus();
		 return false;
		}
		else if(trimAll(drpdwn_Country.value)=="")
		{
		 alert("Please select country");		
		 drpdwn_Country.focus();
		 return false;
		}
		else if(trimAll(txt_Zip.value)=="")
		{
		 alert("Please enter postal code");		
		 txt_Zip.focus();
		 return false;
		}
		else if(trimAll(txt_Phone.value)=="")
		{
		 alert("Please enter phone");		
		 txt_Phone.focus();
		 return false;
		}
		else
		{
	      	windowName = "newpopup";
			action="show-upslabel.php";
			target = windowName;
			open ('', windowName,'top=0,left=0,width=920,height=900,resizable=yes,scrollbars=yes');
			submit();
		}//else ends
	 
   }//with ends
}

//Function used for paging with skip 10 to 10 records
function funPagingMoveTenRec(pg,formname,val)
{
	with(document.forms[formname])
	{
		if(val=="single")
		{
			HdnPage.value=pg;
			HiddenMode.value="paging";
			submit();
		}
		else if(val=="Last")
		{
			HdnPage.value=pg;
			hdn_strtpg.value=pg-1;
			HiddenMode.value="paging";
			submit();
		}
		else if(val=="ten")
		{
			if((pg%15==0 || (pg/15)>1) && pg >15)
			{
				var pgval=Math.floor(pg/15);
				var pg=pgval*15;
				HdnPage.value=pg;
			}
			else
				HdnPage.value=pg;
			
			HiddenMode.value="paging";
			submit();
		}
	}
}

function funPagingMoveSingleRec(formname,pagenumber)
{
	with(document.forms[formname])
	{
		HdnPage.value=pagenumber;
		HiddenMode.value="paging";
		submit();
	}
}