/**
 *	Common JavaScript Functions for Form Validations
 *	For: registration form
 *
 *	@author: mariz
 *	@copyright: 2008
 *
 *   Use on other pages:
 *   Updates: 
 *    Sept. 15, 2008 - hitEnter added used on order pages
 */
 
function findPos(obj) {
	var curleft = curtop = 0;
		
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	} 
	/*
	else if(!obj){
	  obj = $("available_area");
	  curleft = obj.offsetLeft
		curtop = obj.offsetTop
	}
	*/
	
	return [curleft,curtop];
}
 
function hitEnter (field, event) {
  var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  if (keyCode == 13)
    return true;
  else
    return false;
}
 
function setStateFld(country_fld){
	var obj = document.getElementById(country_fld);	
	var states = document.getElementById('state');
	
	sel_country = obj.options[obj.selectedIndex].value;
	sel_state = states.options[states.selectedIndex].value;
	
	x_select_state(sel_country, sel_state, showStates);
}

function showStates(output){
	setElementInnerHTML('div_state', output);
	setElementInnerHTML('lbl_state', (sel_country == 'US' ? "State" : "Province"));
}

function showElement(elem_id){
	document.getElementById(elem_id).style.display = 'block';
}

function hideElement(elem_id){
	document.getElementById(elem_id).style.display = 'none';
}

function clearElement(elem_id){
	document.getElementById(elem_id).innerHTML = '';
}

function setElementInnerHTML(elem_id, html_value){
	document.getElementById(elem_id).innerHTML = html_value;
}

function setFocusOnElement(elem_id){
	document.getElementById(elem_id).focus();
}

function trimXSpaces(Str){
	if(!Str.length)
  		return Str;

	while(Str.charAt(0) == ' ')
  		Str = Str.substring(1, Str.length);

	if(!Str.length)
  		return Str;

 	while(Str.charAt(Str.length - 1) == ' ')
  		Str = Str.substring(0, Str.length - 1);

	return Str;
}

function containsSomething(Field){
	if ((Field.type == "email") || (Field.type == "text") || (Field.type == "textarea") || (Field.type == "password") || (Field.type == "hidden")) {
		Str = trimXSpaces(Field.value);
		if (Str == ""){
			return false;
		}
	}

  	return true;
}

function isValidEmail(Field){
	if (!containsSomething(Field)){
  		return false;
  	}

  	if (Field.value.indexOf("@")==-1 || Field.value.indexOf("@")== 0 || Field.value.indexOf(".")==-1 || Field.value.indexOf(".")== 0 || trimXSpaces(Field.value).indexOf(" ")!=-1 || Field.value.length<6){
  		return false;
  	}
  	
	return true;  	
}

function checkCheckboxes(Form, FieldName){
	for(var i=0;i<Form.elements.length;i++)
		if(Form.elements[i].type == 'checkbox' && Form.elements[i].name == FieldName)
			if(Form.elements[i].checked)
				return true;

	return false;
}

function checkRadio(Form, FieldName/*, AlertMsg*/){
	for(var i=0;i<Form.elements.length;i++){
		if(Form.elements[i].type == 'radio' && Form.elements[i].name == FieldName)
			if(Form.elements[i].checked)
				return true;
	}

	//alert(AlertMsg);

	return false;
}

function checkSelect(Field){
	var i;
  
	for(i=0;i<Field.length;i++)
		if(Field.options[i].selected)
			break;
  
	if(!Field.options[i].value && (Field.selectedIndex <= 0)){
		return false;
	}

	return true;
}

function checkSelectM(Field/*, AlertMsg*/){
	var i;
 	var SelectProceed = 0;

	for (i=0; i<=(Field.options.length - 1); i++){
  		if (Field.options[i].selected){
  			SelectProceed = 1;
  	  		break;
  		}
  	}

	if (SelectProceed == 0){
    	//alert(AlertMsg);
  		return false;
  	}

  	return true;
}

function setRadioValue(Form, FieldName, FieldValue){
	for(var i=0; i<Form.elements.length; i++){
		if(Form.elements[i].type == 'radio' && Form.elements[i].name == FieldName)
			if(Form.elements[i].value == FieldValue){
				Form.elements[i].checked = true;
				break;
			}
	}
	return;
}

/*****************************************************/
/*		Get Form Values 						     */
/*****************************************************/
function getRadio(Form, FieldName){
	var answer = '';
	
	for(var i=0; i<Form.elements.length; i++){
		if(Form.elements[i].type == 'radio' && Form.elements[i].name == FieldName)
			if(Form.elements[i].checked){
				answer = Form.elements[i].value;
				break;
			}
	}
	
	return answer;
}

<!-- Scripts for phone number formatting -->
<!-- This script is based on the javascript code of Roman Feldblum (web.developer@programmer.net) -->
<!-- Original script : http://javascript.internet.com/forms/format-phone-number.html -->
<!-- Original script is revised by Eralper Yilmaz (http://www.eralper.com) -->
<!-- Revised script : http://www.kodyaz.com -->
<!-- Format : "(123) 456-7890" -->

var zChar = new Array(' ', '(', ')', '-', '.');
var maxphonelength = 18;
var phonevalue1;
var phonevalue2;
var cursorposition;

function ParseForNumber1(object){
  phonevalue1 = ParseChar(object.value, zChar);
}

function ParseForNumber2(object){
  phonevalue2 = ParseChar(object.value, zChar);
}

function backspacerUP(object,e) {
  if(e){
    e = e
  } else {
    e = window.event
  }
  if(e.which){
    var keycode = e.which
  } else {
    var keycode = e.keyCode
  }

  ParseForNumber1(object)

  if(keycode >= 48){
    ValidatePhone(object)
  }
}

function backspacerDOWN(object,e) {
  if(e){
    e = e
  } else {
    e = window.event
  }
  if(e.which){
    var keycode = e.which
  } else {
    var keycode = e.keyCode
  }
  ParseForNumber2(object)
}

function GetCursorPosition(){

  var t1 = phonevalue1;
  var t2 = phonevalue2;
  var bool = false
  for (i=0; i<t1.length; i++)
  {
    if (t1.substring(i,1) != t2.substring(i,1)) {
      if(!bool) {
        cursorposition=i
        window.status=cursorposition
        bool=true
      }
    }
  }
}

function ValidatePhone(object){

  var p = phonevalue1

  p = p.replace(/[^\d]*/gi,"")

  if (p.length < 3) {
    object.value=p
  } else if(p.length==3){
    pp=p;
    d4=p.indexOf('(')
    d5=p.indexOf(')')
    if(d4==-1){
      pp="("+pp;
    }
    if(d5==-1){
      pp=pp+")";
    }
    object.value = pp;
  } else if(p.length>3 && p.length < 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+") "

    p31=p.substring(4,l30);
    pp=p30+p31;

    object.value = pp;

  } else if(p.length >= 7){
    p ="(" + p;
    l30=p.length;
    p30=p.substring(0,4);
    p30=p30+") "

    p31=p.substring(4,l30);
    pp=p30+p31;

    l40 = pp.length;
    p40 = pp.substring(0,9);
    p40 = p40 + "-"

    p41 = pp.substring(9,l40);
    ppp = p40 + p41;

    object.value = ppp.substring(0, maxphonelength);
  }

  GetCursorPosition()

  if(cursorposition >= 0){
    if (cursorposition == 0) {
      cursorposition = 2
    } else if (cursorposition <= 2) {
      cursorposition = cursorposition + 1
    } else if (cursorposition <= 4) {
      cursorposition = cursorposition + 3
    } else if (cursorposition == 5) {
      cursorposition = cursorposition + 3
    } else if (cursorposition == 6) {
      cursorposition = cursorposition + 3
    } else if (cursorposition == 7) {
      cursorposition = cursorposition + 4
    } else if (cursorposition == 8) {
      cursorposition = cursorposition + 4
      e1=object.value.indexOf(')')
      e2=object.value.indexOf('-')
      if (e1>-1 && e2>-1){
        if (e2-e1 == 4) {
          cursorposition = cursorposition - 1
        }
      }
    } else if (cursorposition == 9) {
      cursorposition = cursorposition + 4
    } else if (cursorposition < 11) {
      cursorposition = cursorposition + 3
    } else if (cursorposition == 11) {
      cursorposition = cursorposition + 1
    } else if (cursorposition == 12) {
      cursorposition = cursorposition + 1
    } else if (cursorposition >= 13) {
      cursorposition = cursorposition
    }

    var txtRange = object.createTextRange();
    txtRange.moveStart( "character", cursorposition);
    txtRange.moveEnd( "character", cursorposition - object.value.length);
    txtRange.select();
  }

}

// Trap for blank input data
function isEmpty(mytext) {
	var re = /^\s{1,}$/g; //match any white space including space, tab, form-feed, etc.
	if ((mytext.value.length==0) || (mytext.value==null) || ((mytext.value.search(re)) > -1)) {
		return true;
	}else {
		return false;
	}
}

function ParseChar(sStr, sChar)
{

  if (sChar.length == null)
  {
    zChar = new Array(sChar);
  }
    else zChar = sChar;

  for (i=0; i<zChar.length; i++)
  {
    sNewStr = "";

    var iStart = 0;
    var iEnd = sStr.indexOf(sChar[i]);

    while (iEnd != -1)
    {
      sNewStr += sStr.substring(iStart, iEnd);
      iStart = iEnd + 1;
      iEnd = sStr.indexOf(sChar[i], iStart);
    }
    sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length);

    sStr = sNewStr;
  }

  return sNewStr;
}

function MM_preloadImages() {     if (document.images) {         var imgFiles = MM_preloadImages.arguments;         if (document.preloadArray == null) {             document.preloadArray = new Array();         }         var i = document.preloadArray.length;         with (document) {             for (var j = 0; j < imgFiles.length; j++) {                 if (imgFiles[j].charAt(0) != "#") {                     document.preloadArray[i] = new Image();                     document.preloadArray[i++].src = imgFiles[j];                 }             }         }     } } 
