function apply_rich_editor_text(frm_name, field_name)

{
	//alert(field_name);
	tmp = field_name.replace(/\[/, '_OPPR_');
	tmp = tmp.replace(/\[/, '_OPPR_');
	tmp = tmp.replace(/\[/, '_OPPR_');
	tmp = tmp.replace(/\]/, '_CLPR_');
	tmp = tmp.replace(/\]/, '_CLPR_');
	tmp = tmp.replace(/\]/, '_CLPR_');
	tmp = tmp.replace(/\-/, '_MINUS_');
	tmp+='_ed_id';
	rich_ed_obj = '';
	eval('obj_exists = typeof('+tmp+');');
	if (obj_exists=='object')
		{
			eval('rich_ed_obj='+tmp+';');
			document.forms[frm_name].elements[field_name].value = rich_ed_obj.document.body.innerHTML;
		}
	if (tmp==field_name)
		{
			eval('obj_exists = typeof('+field_name+'_ed_id);');
			if (obj_exists=='object')
				{
					eval('rich_ed_obj='+field_name+'_ed_id;');
					document.forms[frm_name].elements[field_name].value = rich_ed_obj.document.body.innerHTML;

				}
		}
	return '';
}

function check_text_mandatory(frm_name, field_name, field_caption)
{
	apply_rich_editor_text(frm_name, field_name);
	if ((typeof(FCKeditorAPI) != 'undefined')  && (instance = FCKeditorAPI.GetInstance(field_name)))
	 {
  		if (instance.GetHTML()=='')
			{
				return '"' + field_caption + '" is mandatory \n';
	   		}
	 }
	else
	if (typeof(document.forms[frm_name].elements[field_name])=='undefined')
		return '';
	else
	if (typeof(document.forms[frm_name].elements[field_name].value.length) != 'undefined')
		{

			if (document.forms[frm_name].elements[field_name].value.length == 0)
				return '"' + field_caption + '" is mandatory \n';
		}
    return '';
}

function check_radio_mandatory(frm_name, field_name, field_caption)

{
	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
	res = true;
	if (typeof(document.forms[frm_name].elements[field_name].length) != 'undefined')
	   {
	    res = false;
	    for (i = 0; i < document.forms[frm_name].elements[field_name].length; i++)
		{
			if (document.forms[frm_name].elements[field_name][i].checked)
			  {
				res = true;
				break;

			  }
		 }
	  }
	 else
	if (!document.forms[frm_name].elements[field_name].checked)
		  res = false;
	if (!res)
		return '"' + field_caption + '" is mandatory\n';
	return '';
}


function text_email_check(frm_name, field_name, field_caption)

{
	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
	if (typeof(document.forms[frm_name].elements[field_name].value) == 'undefined')
		return 'A field ' + field_name + ' for form ' + frm_name + ' is defined, but value property is missing. \n Please make sure the field is not defined twice!!!';

	acc_l = document.forms[frm_name].elements[field_name].value.length;
	if (acc_l > 0)
		{
			e_len = document.forms[frm_name].elements[field_name].value.length;
     		at_pos = document.forms[frm_name].elements[field_name].value.indexOf('@');
	 		dot_pos = document.forms[frm_name].elements[field_name].value.indexOf('.');
     		if ((at_pos <0) || (dot_pos <0) || ((dot_pos - at_pos) == 1)   ||
				(document.forms[frm_name].elements[field_name].value.charAt(e_len-1) == '.'))
				return 'Value entered for "' +field_caption + '" doesn\'t seem to be a correct e-mail\n';
		}
	return '';
}

function generic_mandatory_check(frm_name, field_name, field_caption){
	var tpy;
	tpy = null;
	if (typeof(document.forms[frm_name].elements[field_name])!='undefined'){
		if (typeof(document.forms[frm_name].elements[field_name].type) != 'undefined')
			tpy=document.forms[frm_name].elements[field_name].type;
		else{
			if (typeof(document.forms[frm_name].elements[field_name].length) != 'undefined')
				tpy = document.forms[frm_name].elements[field_name][0].type;
		}
	}

	if(tpy == undefined || tpy == null )
		return '';
	if (tpy=='unknown')
	 return '';
	if (tpy=='radio'){

		return check_radio_mandatory(frm_name, field_name, field_caption);
	}
	if ((tpy=='text') || (tpy=='password') || (tpy=='select-one') || (tpy=='select') || (tpy=='hidden') || (tpy=='file') ||  (tpy=='textarea'))
		return check_text_mandatory(frm_name, field_name, field_caption);
	if (tpy=='checkbox')
		return check_radio_mandatory(frm_name, field_name, field_caption);
	return tpy + "\n";
}




function get_payment_value(frm_name)

{
	if (typeof(document.forms[frm_name].elements['PMETH']) == 'undefined')
		return false;
	pmeth_field = document.forms[frm_name].elements['PMETH'];
	var pmeth_value = 0;
	if (typeof(pmeth_field.value)=='undefined')
		{
			for(i=0; i< pmeth_field.length; i++)
				if (pmeth_field[i].checked)
					{
						pmeth_value = pmeth_field[i].value;
						break;
					}
		}
	else
		pmeth_value = pmeth_field.value;
	return pmeth_value;
}

function cc_validation(frm_name, cc_field_name){
	CC_CHOICE_VALUE  = 'CREDITCARD';
	visa_val = 'VISA';
	mastercard_val = 'MASTERCARD',
	amex_val = 'AMEX',
	discover_val = 'DISCOVER';

	pmeth_value = get_payment_value(frm_name);
	if (!pmeth_value)
		return check_text_mandatory(frm_name, 'CC', 'Credit Card');

	if (pmeth_value != CC_CHOICE_VALUE)
		return '';

	if (typeof(document.forms[frm_name].elements[cc_field_name]) == 'undefined')
		return '';

	var cc_field = document.forms[frm_name].elements[cc_field_name];
	var acc_l = cc_field.value.length;

	if (acc_l<=0)
		return 'The credit card number can not be empty\n';
	if (acc_l < 15)
	      	return 'The credit card number is too short.\n';

     for (i=0; i<acc_l; i++){
	      ch = cc_field.value.charAt(i);
	       if ((ch<'0') ||(ch>'9'))
	  			return 'Credit card number should not contain any characters except digits!\n';
     }


	if (typeof(document.forms[frm_name].elements['CCTYPE']) == 'undefined')
		return 'Credit Card Type field is missing. Please call tech. support!';

	var cc_type = document.forms[frm_name].elements['CCTYPE'];
	chars_arr = new Array();
	chars_arr[visa_val]='4';
	chars_arr[mastercard_val]='5';
	chars_arr[amex_val]='3';
	chars_arr[discover_val]='6';
    req_char = 0;
	if (chars_arr[cc_type.value])
		req_char = chars_arr[cc_type.value];
	if (req_char && (cc_field.value.charAt(0) != req_char))
	      return 'Credit card number is invalid, please try to re-enter\n';
	return '';
}



function checkTZ(frm_name, field_name){
	CC_CHOICE_VALUE  = 'CREDITCARD';

	pmeth_value = get_payment_value(frm_name);
	if (!pmeth_value)
		return '';
	if (pmeth_value != CC_CHOICE_VALUE)
		return '';

	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
	var tz_field = document.forms[frm_name].elements[field_name];
	var acc_l = tz_field.value.length;
	if (acc_l > 0)
	{
	      for (i=0; i<acc_l; i++){
	      	ch = document.forms[frm_name].elements[field_name].value.charAt(i);
	      	if ((ch<'0') ||(ch>'9')){
	    	  return 'Card Holder ID should be numeric';
		  	}
	      }

   }
	return '';
}


function cvv_validation(frm_name, field_name){
	CC_CHOICE_VALUE  = 'CREDITCARD';
	pmeth_value = get_payment_value(frm_name);
	if (!pmeth_value)
		return check_text_mandatory(frm_name, field_name, 'CVV2');

	if (pmeth_value != CC_CHOICE_VALUE)
		return '';

	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
	res = check_text_mandatory(frm_name, field_name, 'CVV2');
	if (res!='')
		return res;

	cvv_field = document.forms[frm_name].elements[field_name];


	acc_l = cvv_field.value.length;
    for (i=0; i<acc_l; i++)
		{
      		 ch = cvv_field.value.charAt(i);
		     if ((ch<'0') ||(ch>'9'))
		  		return 'CVV2 number should not contain any characters except digits!\n';
		}
	return '';
}

function state_valiation(frm_name, field_name, prefix, usa_value, canada_value){
	if (
			(typeof(document.forms[frm_name].elements[prefix + 'COUNTRY']) == 'undefined')	||
			(typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		)
		return'';
	var country_field = document.forms[frm_name].elements[prefix + 'COUNTRY'];
	var this_field = document.forms[frm_name].elements[field_name];

	ex_word = ' ';
	if (prefix =='SHIP')
		ex_word = ' (shipping information) '
	if 	(
		(country_field.value == usa_value) &&
    	((this_field.selectedIndex==0)|| (this_field.selectedIndex>54))
   		)
   			return 'State'+ex_word+'is mandatory  if USA is selected \n';
	if  ((country_field.value == canada_value) && (this_field.selectedIndex<56))
		   return 'Province'+ex_word+'is mandatory if Canada is selected\n';
	return '';
}


function get_ship_is_bill_value(frm_name)

{
	if (typeof(document.forms[frm_name].elements['SHIPISBILL']) == 'undefined')
		return false;
	ship_is_bill = document.forms[frm_name].elements['SHIPISBILL'];
	if (typeof(ship_is_bill.length)=='undefined')
		return ship_is_bill.value;
	for(i=0; i< ship_is_bill.length; i++)
		{
			if (ship_is_bill[i].checked)
				return ship_is_bill[i].value;
		}
	return false;

}

function shipping_field_mandatory(frm_name, shipisbill_value, field_name, field_caption)

{
	sh_value = get_ship_is_bill_value(frm_name);
	if (!sh_value)
		return 'Shipping method selection is missing. Call tech support!';
	if (sh_value == shipisbill_value)
		return '';
	if ( (typeof(document.forms[frm_name].shipping_hidden)!='undefined')  &&
		 (document.forms[frm_name].shipping_hidden.value!=0))
		return '';
	return check_text_mandatory(frm_name, field_name, field_caption +' (shipping information) ');
}

function ship_state_valiation(frm_name, field_name, shipisbill_value, usa_value, canada_value)

{
	sh_value = get_ship_is_bill_value(frm_name);
	if (!sh_value)
		return 'Shipping method selection is missing. Call tech support!\n';
	if (sh_value == shipisbill_value)
		return '';
	if ( (typeof(document.forms[frm_name].shipping_hidden)!='undefined')  &&
		 (document.forms[frm_name].shipping_hidden.value!=0))
		return '';

	return state_valiation(frm_name, field_name, 'SHIP', usa_value, canada_value)
}


function zipcode_validation(frm_name, field_name,  field_caption, prefix, usa_value)

{
	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
			return '';

	if ((typeof(document.forms[frm_name].elements[prefix + 'COUNTRY']) == 'undefined'))
			return text_number_check(frm_name, field_name, field_caption);

	zip_field = document.forms[frm_name].elements[field_name];
	if (zip_field.value.length > 10)
		return 'ZIP code cannot be longer then 10 characters\n';

	country_field = document.forms[frm_name].elements[prefix + 'COUNTRY'];

	if (country_field.value==usa_value)
		return text_number_check(frm_name, field_name, field_caption);

	acc_l = zip_field.value.length;
	if (acc_l > 0)
		{
	      for (i=0; i<acc_l; i++)
		  {
		      ch = zip_field.value.charAt(i);
		      flg=false;
		      if ((ch>='A') &&(ch<='Z'))
		         flg= true;
		      if ((ch>='a') &&(ch<='z'))
		         flg= true;
		      if ((ch>='0') &&(ch<='9'))
		         flg= true;
		      if (ch=='-')
		         flg= true;
		      if (ch==' ')
		         flg= true;
		      if (!flg)
	  			return 'Field '+field_caption+' should be alpha numeric \n';
		  }
		}
	return '';
}

function ship_zipcode_validation(frm_name, field_name,  field_caption, shipisbill_value, usa_value)
{
	sh_value = get_ship_is_bill_value(frm_name);
	if (!sh_value)
		return 'Shipping method selection is missing. Call tech support!\n'
	if (sh_value == shipisbill_value)
		return '';
	if ( (typeof(document.forms[frm_name].shipping_hidden)!='undefined')  &&
		 (document.forms[frm_name].shipping_hidden.value!=0))
		return '';
	return zipcode_validation(frm_name, field_name,  field_caption, 'SHIP', usa_value)
}

function oracle_mandatory(frm_name, field_name, field_caption, oracle_value)

{
	pmeth_value = get_payment_value(frm_name);
	if (!pmeth_value)
		return '';
	if (pmeth_value != oracle_value)
		return '';
	return check_text_mandatory(frm_name, field_name, field_caption);
}


function intagio_mandatory(frm_name, field_name, field_caption, intagio_value)

{
	pmeth_value = get_payment_value(frm_name);
	if (!pmeth_value)
		return '';
	if (pmeth_value != intagio_value)
		return '';
	return check_text_mandatory(frm_name, field_name, 'INTAGIO User ID and password are mandatory');
}


function itex_mandatory(frm_name, field_name, field_caption, itex_value)

{
	pmeth_value = get_payment_value(frm_name);
	if (!pmeth_value)
		return '';
	if (pmeth_value != itex_value)
		return '';
	return check_text_mandatory(frm_name, field_name, 'ITEX User ID and password are mandatory');
}

function text_number_check(frm_name, field_name, field_caption)

{
	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
	if (typeof(document.forms[frm_name].elements[field_name].value) == 'undefined')
		return '';
	acc_l = document.forms[frm_name].elements[field_name].value.length;
	if (acc_l > 0)
	  {
	    for (i=0; i<acc_l; i++)
		{
		  	ch = document.forms[frm_name].elements[field_name].value.charAt(i);
	    	if (((ch<'0') ||(ch>'9')) && (ch!='-') && (ch!='.'))
			  	{
					return '"' + field_caption + '" should be numberic\n';
				}
		}
	  }
	return '';
}

function dd_mandatory_check(frm_name, field_name, field_caption)

{
  if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
  if (document.forms[frm_name].elements[field_name].value < 0)
		return '"' + field_caption + '" is mandatory\n';
  return '';
}

function date_format_check(frm_name, field_name, field_caption)

{
	if (typeof(document.forms[frm_name].elements[field_name]) == 'undefined')
		return '';
	if (document.forms[frm_name].elements[field_name].value.length == 0)
		return '';
	if ( (document.forms[frm_name].elements[field_name].value.length != 10) ||
		 (document.forms[frm_name].elements[field_name].value.charAt(2) != '-') ||
		 (document.forms[frm_name].elements[field_name].value.charAt(5) != '-')
	   )
		  return 'Invalid date format for "' + field_caption + '", must be MM-DD-YYYY\n';
	  if (eval(document.forms[frm_name].elements[field_name].value.substr(6, 4) +
	  		   document.forms[frm_name].elements[field_name].value.substr(0, 2) +
			   document.forms[frm_name].elements[field_name].value.substr(3, 2)) == 0)
	 	 return  'Invalid date format for "' + field_caption + '", only digits are allowed \n';
	return '';
}

function SetVisibleById(element_id, show) {
 var divstyle = document.getElementById(element_id).style;
 if (show == 2) {
	divstyle.display='inline';
 } else if (show == 1) {
 	divstyle.display='';
 } else if (show == 0) {
 	divstyle.display='none';
 }
}


//Toggles the visibility of the element with the given name
//If visible, make hidden. If hidden, make visible.
function ShowHideById(element_id) {
 var divstyle = document.getElementById(element_id).style;
 if (divstyle.display != 'none')
 	divstyle.display = 'none';
 else
 	divstyle.display = ''
}


function toggle_visible(element_id1, element_id2)

{
	ShowHideById(element_id1);
	ShowHideById(element_id2);
}


function setCookie(name, value, expires, path, domain, secure) {
		var curCookie = name + "=" + escape(value) +
				((expires) ? "; expires=" + expires.toGMTString() : "") +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				((secure) ? "; secure" : "");
		document.cookie = curCookie;
	}

// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist
function getCookie(name) {
		var dc = document.cookie;
		var prefix = name + "=";
		var begin = dc.indexOf("; " + prefix);
		if (begin == -1) {
			begin = dc.indexOf(prefix);
			if (begin != 0) return null;
		} else
			begin += 2;
		var end = document.cookie.indexOf(";", begin);
		if (end == -1)
			end = dc.length;
		return unescape(dc.substring(begin + prefix.length, end));
	}


function deleteall(form_name)
	{
		document.forms[form_name].elements['ac'].value = 'del';
		if ( confirm('Delete is irreversible, are you sure?') )
	   		document.forms[form_name].submit();
	}

function updateall(form_name)

{
	if ((typeof(mandatory_fields_arr) != 'undefined') && (typeof(mandatory_fields_names_arr) != 'undefined'))
		{
			for (i=0; i<mandatory_fields_arr.length; i++)
				{
					if (!check_text_mandatory(form_name, mandatory_fields_arr[i], mandatory_fields_names_arr[i]))
						return;
				}
		}

	document.forms[form_name].elements['ac'].value = 'do_save_add';
	document.forms[form_name].submit();
}

function add_mandatory_field(field_name, field_caption)

{
	i = 0;
	if (typeof(mandatory_fields_arr) != 'undefined')
		i = mandatory_fields_arr.length;
	mandatory_fields_arr[i] = field_name;
	mandatory_fields_names_arr[i] = field_caption;

}

var mandatory_fields_arr = new Array();
var mandatory_fields_names_arr = new Array();

function do_clone(form_name)
{
	document.forms[form_name].ac.value = 'clone';
	document.forms[form_name].submit();
}

function OpenWindow(url, name)
{
	 popupWin=window.open(url, name, 'scrollbars=yes,width=600,height=50,left=100,top=200');
}

//////////////////////////////////////////////
// new checkout form
//////////////////////////////////////////////
function onsubmit_frm5(frm_name){
 form_name=frm_name;
 res = '' + check_text_mandatory(form_name, 'FNAME', 'First Name')
	+ check_text_mandatory(form_name, 'LNAME', 'Last Name')
	+ check_text_mandatory(form_name, 'ADDR1', 'Address Line 1')
	+ check_text_mandatory(form_name, 'CITY', 'City')
	+ state_valiation(frm_name, 'STATE', '', 'USA', 'CA')+ check_text_mandatory(form_name, 'ZIPCODE', 'Zip Code')
	+ zipcode_validation(frm_name, 'ZIPCODE',  'Zip Code', '', 'USA')+ dd_mandatory_check(form_name, 'COUNTRY', 'Country')
	+ dd_mandatory_check(form_name, 'COUNTRY', 'Country')
	+ check_text_mandatory(form_name, 'PHONE', 'Telephone')
	+ text_number_check(frm_name, 'FAX', 'Fax')
	+ check_text_mandatory(form_name, 'EMAIL', 'Email Address')
	+ text_email_check(frm_name, 'EMAIL', 'Email Address')
	+ check_radio_mandatory(form_name, 'SHIPISBILL', 'Shipping options')
	+ check_radio_mandatory(form_name, 'SHIPISBILL', 'Shipping options')
	+ shipping_field_mandatory(frm_name, 'USA', 'SHIPFNAME', 'First Name')+
	shipping_field_mandatory(frm_name, 'USA', 'SHIPLNAME', 'Last Name')+
	shipping_field_mandatory(frm_name, 'USA', 'SHIPADDR1', 'Address Line 1')+
	shipping_field_mandatory(frm_name, 'USA', 'SHIPCITY', 'City')+
	ship_state_valiation(frm_name, 'SHIPSTATE', 'SAMEASBILLING', 'USA', 'CA')
	+ ship_zipcode_validation(frm_name, 'SHIPZIPCODE',  'Zip Code', 'USA', 'USA')
	+ text_email_check(frm_name, 'SHIPEMAIL', 'E-mail')+
	dd_mandatory_check(form_name, 'GIFTCARDTYPE', 'Gift Card')
	+ dd_mandatory_check(form_name, 'GIFTCARDTYPE', 'Gift Card')
	+ dd_mandatory_check(form_name, 'EGIFTCARD', 'Gift Card')
	+ dd_mandatory_check(form_name, 'EGIFTCARD', 'Gift Card')
	+ apply_rich_editor_text(frm_name, 'GIFTCARDMSG')
	+ check_radio_mandatory(form_name, 'PMETH', 'Payment Method')
	+ check_radio_mandatory(form_name, 'PMETH', 'Payment Method')
	+ apply_rich_editor_text(frm_name, 'COMMENTS')
	+ dd_mandatory_check(form_name, 'CCTYPE', 'Credit Card Type')
	+ cc_validation(frm_name, 'CC')
	+ cvv_validation(frm_name, 'CVV')
	+ dd_mandatory_check(form_name, 'EXP_DATE_MONTH', 'Expiration Date')
	+ dd_mandatory_check(form_name, 'EXP_DATE_YEAR', 'Expiration Date')
 ;
 if (VALIDATE_PASSWORD)
 	res+=check_text_mandatory(form_name, 'PASSWORD1', 'Password')
	+ check_text_mandatory(form_name, 'PASSWORD2', 'Confirm password');

 if (res) {alert(res); return false;} return true;
}

 function submit_frm5()
	{
	 if (onsubmit_frm5('CHECKOUTFORM'))
	  {
	   document.forms['CHECKOUTFORM'].submit();
	  }

	}


function onsubmit_frm11(frm_name){
 	form_name=frm_name;
 	if (document.forms['sel_addr_frm'])
  		document.forms['PAYMENT'].ship_addr_id.value =document.forms['sel_addr_frm'].SHIP_ACCOUNTS.value;
	res = '' + dd_mandatory_check(form_name, 'GIFTCARDTYPE', 'Gift Card')
	+ dd_mandatory_check(form_name, 'GIFTCARDTYPE', 'Gift Card')
	+ dd_mandatory_check(form_name, 'EGIFTCARD', 'Gift Card')
	+ dd_mandatory_check(form_name, 'EGIFTCARD', 'Gift Card')
	+ apply_rich_editor_text(frm_name, 'GIFTCARDMSG')
	+ check_radio_mandatory(form_name, 'PMETH', 'Payment Method')
	+ check_radio_mandatory(form_name, 'PMETH', 'Payment Method')
	+ apply_rich_editor_text(frm_name, 'COMMENTS')
	+ dd_mandatory_check(form_name, 'CCTYPE', 'Credit Card Type')
	+ dd_mandatory_check(form_name, 'CCTYPE', 'Credit Card Type')
	+ cc_validation(frm_name, 'CC')
	+ cvv_validation(frm_name, 'CVV')+
	dd_mandatory_check(form_name, 'EXP_DATE_MONTH', 'Expiration date month')
	+ dd_mandatory_check(form_name, 'EXP_DATE_MONTH', 'Expiration date month')
	+ dd_mandatory_check(form_name, 'EXP_DATE_YEAR', 'Expiration date year')
	+ dd_mandatory_check(form_name, 'EXP_DATE_YEAR', 'Expiration date year')
	;
	if (res) {alert(res); return false;} return true;
}

 function submit_frm11()
	{
	 if (onsubmit_frm11('PAYMENT'))
	  {
	   document.forms['PAYMENT'].submit();
	  }

	}
