function validateEmail(elem) {
    var str = "";
    if (elem.value) {
        str = new String(elem.value);
    } else {
        str = new String(elem);
    }
    if (window.RegExp) {
        var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
        var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$";
        var reg1 = new RegExp(reg1str);
        var reg2 = new RegExp(reg2str);
        if (!reg1.test(str) && reg2.test(str)) return true;
        return false;
    } else {
        if (str.indexOf("@") >= 0) return true;
        return false;
    }
}

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

function trim(str) {
    return new String(str).trim();
}

function isEmpty(elem){
  return trim(elem.value).length==0;
}

function validateForgotten(f) {
    if (!validateEmail(f.email)) {
        alert("Please enter email");
        f.email.focus();
        return false;
    }
    return true;
}

function jumpSearch(){
    if(document.forms['form1']&&document.forms['form1'].email)document.forms['form1'].email.focus();
}

function validateLogin(f) {
    if (f.email.value=="") {
        alert("Please enter email");
        f.email.focus();
        return false;
    }
    if (f.pass.value=="") {
        alert("Please enter password");
        f.pass.focus();
        return false;
    }
    return true;
}

function validateRegistration(f){
    if (!validateEmail(f.email)) {
        alert("Please enter correct email address");
        f.email.focus();
        return false;
    }
    if (f.email.value!=f.email1.value) {
        alert("Please confirm your email address");
        f.email1.focus();
        return false;
    }
    if (f.pass.value.length==0) {
        alert("Please enter Password");
        f.pass.focus();
        return false;
    }
    if (f.pass.value!=f.pass1.value) {
        alert("Please confirm your password");
        f.pass1.focus();
        return false;
    }
    if (isEmpty(f.first_name)) {
        alert("Please enter First Name");
        f.first_name.focus();
        return false;
    }
    if (isEmpty(f.last_name)) {
        alert("Please enter Last Name");
        f.last_name.focus();
        return false;
    }
    if (isEmpty(f.address1)) {
        alert("Please enter Address");
        f.address1.focus();
        return false;
    }
    if (isEmpty(f.city)) {
        alert("Please enter City");
        f.city.focus();
        return false;
    }
    if ((f.country.value=="CA")&&isEmpty(f.state_ca)) {
        alert("Please enter State/ Province");
        f.state_ca.focus();
        return false;
    }
    if ((f.country.value=="US")&&isEmpty(f.state_us)) {
        alert("Please enter State/ Province");
        f.state_us.focus();
        return false;
    }
    if ((f.country.value!="US"&&f.country.value!="CA")&&isEmpty(f.state)) {
        alert("Please enter State/ Province");
        f.state.focus();
        return false;
    }
    if (isEmpty(f.zip)) {
        alert("Please enter Zip/ Postal code");
        f.zip.focus();
        return false;
    }
    if (isEmpty(f.phone)) {
        alert("Please enter Phone number");
        f.phone.focus();
        return false;
    }
    if (isEmpty(f.s_address1)) {
        alert("Please enter Address");
        f.s_address1.focus();
        return false;
    }
    if (isEmpty(f.s_city)) {
        alert("Please enter City");
        f.s_city.focus();
        return false;
    }
    if ((f.s_country.value=="CA")&&isEmpty(f.s_state_ca)) {
        alert("Please enter State/ Province");
        f.s_state_ca.focus();
        return false;
    }
    if ((f.s_country.value=="US")&&isEmpty(f.s_state_us)) {
        alert("Please enter State/ Province");
        f.state_us.focus();
        return false;
    }
    if ((f.s_country.value!="US"&&f.s_country.value!="CA")&&isEmpty(f.s_state)) {
        alert("Please enter State/ Province");
        f.s_state.focus();
        return false;
    }
    if (isEmpty(f.s_zip)) {
        alert("Please enter Zip/ Postal code");
        f.s_zip.focus();
        return false;
    }
    if (isEmpty(f.s_phone)) {
        alert("Please enter Phone number");
        f.s_phone.focus();
        return false;
    }
    if (f.c_type&&!f.c_type.disabled) {
        if (f.c_type.value=="") {
            alert("Please select Card type");
            f.c_type.focus();
            return false;
        }
        if (isEmpty(f.c_number)||f.c_number.value.length<14||!isNumber(f.c_number.value)) {
            alert("Please enter corrcet Card number");
            f.c_number.focus();
            return false;
        }
        if (f.c_expmonth.value=="") {
            alert("please select Expiration Month");
            f.c_expmonth.focus();
            return false;
        }
        if (f.c_expyear.value=="") {
            alert("please select Expiration Year");
            f.c_expyear.focus();
            return false;
        }
        if (isEmpty(f.c_code)) {
            alert("Please enter 3 or 4 digit security code");
            f.c_code.focus();
            return false;
        }
        if (isEmpty(f.c_name)) {
            alert("Please enter Name on card");
            f.c_name.focus();
            return false;
        }
    }
    var isChecked=isCheckedR(f.hearaboutus);
    if(isChecked==-1){
        alert("Please check, how did you hear about us");
        return false;
    }
    if(isChecked!=4&&isEmpty(f.elements['hearaboutus_'+isChecked])){
        alert("Please enter specify for "+f.elements['hear_'+isChecked].value);
        f.elements['hearaboutus_'+isChecked].focus();
        return false;
    }
    if (f.country.value=="US"){
        f.state.value = f.state_us.value;
    } else if (f.country.value=="CA"){
        f.state.value = f.state_ca.value;
    }
    if (f.s_country.value=="US"){
        f.s_state.value = f.s_state_us.value;
    } else if (f.s_country.value=="CA"){
        f.s_state.value = f.s_state_ca.value;
    }
    return true;
}

function isCheckedR(els){
    for(var i=0;i<els.length;i++)if(els[i].checked)return i;
    return -1;
}

function isNumber(num) {
    var number = new RegExp(/^[0-9]+$/gi);
    return number.test(num);
}

function showCard(check) {
    for (var i = 0; i < 6; i++) {
        var tr = document.getElementById("card"+i);
        if (tr) tr.style.display = !check.checked ? "none" : "";
    }
    disableCard(!check.checked);
}

function disableCard(bool) {
    document.f.c_type.disabled = bool;
    document.f.c_number.disabled = bool;
    document.f.c_name.disabled = bool;
    document.f.c_expmonth.disabled = bool;
    document.f.c_expyear.disabled = bool;
    document.f.c_code.disabled = bool;
}

function fillForm(f) {
	if (f.fill.checked) {
		f.s_address1.value=f.address1.value;
		f.s_address2.value=f.address2.value;
		f.s_city.value=f.city.value;
        if (f.country.value == "US"){
            for (var i=0;i<f.state_us.options.length;i++) {
                if (f.state_us.options[i].selected) {f.s_state_us.options[i].selected=true;}
            }
        } else if (f.country.value == "CA"){
            for (var i=0;i<f.state_ca.options.length;i++) {
                if (f.state_ca.options[i].selected) {f.s_state_ca.options[i].selected=true;}
            }
        } else {
            f.s_state.value=f.state.value;
        }
		f.s_zip.value=f.zip.value;
		for (var i=0;i<f.country.options.length;i++) {
			if (f.country.options[i].selected) {f.s_country.options[i].selected=true;}
		}
		f.s_phone.value=f.phone.value;
	}
}

function validateOrderRequest(f){
    if (!isChecked(f.item)){
	alert("Please check item");
	return false;
    }
    if (f.item[0].checked&&isEmpty(f.size_)){
        alert("Please enter size");
        f.size_.focus();
        return false;
    }
    if (f.item[1].checked&&isEmpty(f.name)){
        alert("Please enter Item name/code");
        f.name.focus();
        return false;
    }
    if (f.item[1].checked&&isEmpty(f.description)){
        alert("Please enter Description");
        f.description.focus();
        return false;
    }
    if (f.item[1].checked&&isEmpty(f.colour)){
        alert("Please enter Colour");
        f.colour.focus();
        return false;
    }
    if (f.item[1].checked&&isEmpty(f.size)){
        alert("Please enter Size");
        f.size.focus();
        return false;
    }
    if (!validateEmail(f.email)){
		alert("Please enter corrcet email");
		f.email.focus();
		return false;
    }
    return true;
}

function isChecked(elms){
	for (var i=0;i<elms.length;i++)
		if (elms[i].checked) return true;
	return false;
}

var isNN70 = false;
if (navigator.userAgent && navigator.userAgent.indexOf("Netscape/7.0")>=0) isNN70 = true;
function validateForm(f) {
    if(f.quantity==null||f.quantity.style.display=="none"){
        alert("This item is currently out of stock");
        return false;
    }
    if (f.size&&f.size.value=="") {
        alert("Please select size");
        f.size.focus();
        return false;
    }
    if (f.color&&f.color.value=="") {
        alert("Please select color");
        f.color.focus();
        return false;
    }
    if(!isNumber(f.quantity.value)){
        alert("Please enter correct quantity");
        f.quantity.focus();
        return false;
    }
    return true;
}
function change(src) {
    document.getElementById("main_image").src=src;
}
function isNumber(num){
    var number = new RegExp(/^[1-9]+[0-9]*$/gi);
    return number.test(num);
}

function reloadSize(f) {
    if(f.size.value!=""&&f.quantity){
        if((f.color&&f.color.value!="")||f.color==null){
            if (!isNN70) {
                frames['getcolorsdatabase'].document.location="/modules/rubysky/getquantity.jsp?id="+escape(f.id.value)+"&sizeid="+escape(f.size.value)+"&colorid="+escape(f.color!=null?f.color.value:"0");
            }  else {
                document.getElementById('getcolorsdatabase').contentWindow.document.location="/modules/rubysky/getquantity.jsp?id="+f.id.value+"&sizeid="+f.size.value+"&colorid="+f.color!=null?f.color.value:"0";
            }
        }
    }else{
        if(f.quantity) setQuantity('1');
    }
}

function reloadColor(f){
    if(f.color.value!=""&&f.quantity){
        if((f.size&&f.size.value!="")||f.size==null){
            if (!isNN70) {
                frames['getcolorsdatabase'].document.location="/modules/rubysky/getquantity.jsp?id="+escape(f.id.value)+"&sizeid="+escape(f.size.value)+"&colorid="+escape(f.color!=null?f.color.value:"0");
            }  else {
                document.getElementById('getcolorsdatabase').contentWindow.document.location="/modules/rubysky/getquantity.jsp?id="+f.id.value+"&sizeid="+f.size.value+"&colorid="+f.color!=null?f.color.value:"0";
            }
        }
    }else{
        if(f.quantity) setQuantity('1');
    }
}

function setQuantity(str){
    var quantity=new Number(str);
    document.getElementById("quantity").style.display=quantity>0?"":"none";
    document.getElementById("error_quantity").style.display=quantity>0?"none":"";
}

function validateRegForm(f){
    if (f.pass.value.length==0) {
        alert("Please enter Password");
        f.pass.focus();
        return false;
    }
    if (f.pass.value!=f.pass1.value) {
        alert("Please confirm your password");
        return false;
    }
    if (isEmpty(f.first_name)) {
        alert("Please enter First Name");
        f.first_name.focus();
        return false;
    }
    if (isEmpty(f.last_name)) {
        alert("Please enter Last Name");
        f.last_name.focus();
        return false;
    }
    if (isEmpty(f.address1)) {
        alert("Please enter Address");
        f.address1.focus();
        return false;
    }
    if (isEmpty(f.city)) {
        alert("Please enter City");
        f.city.focus();
        return false;
    }
    if ((f.country.value=="CA"||f.country.value=="US")&&isEmpty(f.state)) {
        alert("Please enter State/ Province");
        f.state.focus();
        return false;
    }
	if(f.state.value=="Other"&&isEmpty(f.state_o)){
		alert("Please enter State/ Province");
		f.state_o.focus();
		return false;
	}
	if (isEmpty(f.zip)) {
        alert("Please enter Zip/ Postal code");
        f.zip.focus();
        return false;
    }
    if (isEmpty(f.phone)) {
        alert("Please enter Phone number");
        f.phone.focus();
        return false;
    }
    if (isEmpty(f.s_address1)) {
        alert("Please enter Address");
        f.s_address1.focus();
        return false;
    }
    if (isEmpty(f.s_city)) {
        alert("Please enter City");
        f.s_city.focus();
        return false;
    }
    if ((f.s_country.value=="CA"||f.s_country.value=="US")&&isEmpty(f.s_state)) {
        alert("Please enter State/ Province");
        f.s_state.focus();
        return false;
    }
	if(f.s_state.value=="Other"&&isEmpty(f.s_state_o)){
		alert("Please enter State/ Province");
		f.s_state_o.focus();
		return false;
	}
	if (isEmpty(f.s_zip)) {
        alert("Please enter Zip/ Postal code");
        f.s_zip.focus();
        return false;
    }
    if (isEmpty(f.s_phone)) {
        alert("Please enter Phone number");
        f.s_phone.focus();
        return false;
    }
    return true;
}

function fillMyAccountForm(f) {
	if (f.fill.checked) {
		f.s_address1.value=f.address1.value;
		f.s_address2.value=f.address2.value;
		f.s_city.value=f.city.value;
        for(var i=0;i<f.state.options.length;i++){
            if(f.state.options[i].selected){
                f.s_state.options[i].selected=true;
                if(f.s_state.options[i].value=="Other"){
                    f.s_state_o.style.display="";
                    f.s_state_o.value=f.state.value;
                }else{
                    f.s_state_o.style.display="none";
                    f.s_state_o.value="";
                }
            }
        }
        f.s_zip.value=f.zip.value;
		for (var i=0;i<f.country.options.length;i++) {
			if (f.country.options[i].selected) {f.s_country.options[i].selected=true;}
		}
		f.s_phone.value=f.phone.value;
	}
}

function validateForm1(f) {
    var del = f.del;
    if (del == null) {
        alert('There is nothing to delete');
        return false;
    }
    if (!f.del.length) {
        if (!f.del.checked) {
            alert("Please select record to delete.");
            return false;
        } else {
            return confirm("Are you sure you want to delete checked items?");
        }
    }
    for (var i = 0; i < f.del.length; i++) {
        if (f.del[i].checked) {
            return confirm("Are you sure you want to delete checked items?");
        }
    }
    alert("Please select record(s) to delete.");
    return false;
}

function validateShipping(f,isShopping) {
    if (f.shipping_type&&f.shipping_type.value=="") {
        alert("Please select shipping method");
        f.shipping_type.focus();
        return false;
    }
    if (isShopping) {
        f.p2.value='/modules/rubysky/paysystem.jsp';
    } else {
        f.p2.value='/modules/rubysky/shopcart.jsp';
    }
    return true;
}

function changeState(c){
  if (c.value == 'US'){
      document.getElementById('state_us').style.display = '';
      document.getElementById('state_ca').style.display = 'none';
      document.getElementById('state').style.display = 'none';
  } else if (c.value == 'CA'){
      document.getElementById('state_us').style.display = 'none';
      document.getElementById('state_ca').style.display = '';
      document.getElementById('state').style.display = 'none';
  } else {
      document.getElementById('state_us').style.display = 'none';
      document.getElementById('state_ca').style.display = 'none';
      document.getElementById('state').style.display = '';
  }
}

function changeState_S(c){
  if (c.value == 'US'){
      document.getElementById('s_state_us').style.display = '';
      document.getElementById('s_state_ca').style.display = 'none';
      document.getElementById('s_state').style.display = 'none';
  } else if (c.value == 'CA'){
      document.getElementById('s_state_us').style.display = 'none';
      document.getElementById('s_state_ca').style.display = '';
      document.getElementById('s_state').style.display = 'none';
  } else {
      document.getElementById('s_state_us').style.display = 'none';
      document.getElementById('s_state_ca').style.display = 'none';
      document.getElementById('s_state').style.display = '';
  }
}