/* alanni -- Loading prices from external input element or load the default */
var base_startprice = 765.00;
var pack_startprice = 585.00;
var load_startprice = 585.00;
var ecom_startprice = 585.00;
var camp_startprice = 3395.00;
var psuite_startprice = 4235.00;
var bsupport_startprice = 195.00;
var psupport_startprice = 395.00;

var bsupport_startprice_full = 295.00;
var psupport_startprice_full = 495.00;


/*
function formInit(){
	document.urchin5.total.value = formatMoney(base_startprice);
	document.urchin5.base_amountbox.value = formatMoney(base_startprice);
}
*/

function submitForm(){
	
	// Preliminary checks
	if(document.urchin5.order_type){
		if(document.urchin5.order_type.value == "upgrade"){
			check_list = new Array("camp_checkbox","ecom_checkbox","load_checkbox","pack_checkbox", "base_checkbox");
			selected = false;
			for(i in check_list){
				if(document.urchin5[check_list[i]].checked){
					selected = true;
				}
			}
			if( (document.urchin5.psupport_checkbox.checked || document.urchin5.bsupport_checkbox.checked) && !selected){
				alert("Attenzione, non puoi acquistare il supporto senza aver selezionato almeno un modulo o un pacchetto dalla lista.");
			}else if(!selected){
				alert("Attenzione, per proseguire con l'ordine devi selezionare almeno un modulo o un pacchetto dalla lista.");
			}else{
				document.urchin5.submit();
			}
		}else if(document.urchin5.order_type.value == "support"){
			check_list = new Array("psupport_checkbox","bsupport_checkbox");
			selected = false;
			for(i in check_list){
				if(document.urchin5[check_list[i]].checked){
					selected = true;
				}
			}
			if(!selected){
				alert("Attenzione, per proseguire con l'ordine devi selezionare un pacchetto di supporto.");
			}else{
				document.urchin5.submit();
			}
			
		}else{
			document.urchin5.submit();
		}
	}else{
		document.urchin5.submit();
	}
}


/* -- End of alanni --- */

function validateUpgrade ()
{
	if (!document.urchin5) return;
   	var form = document.urchin5;

   if ( (form.ecom_checkbox && form.ecom_checkbox.checked) || ( form.camp_checkbox && form.camp_checkbox.checked) || ( form.supp_checkbox && form.supp_checkbox.checked ) || ( form.psuite_checkbox && form.psuite_checkbox.checked ) )
	{
	return true;
	}
   else
	{
 	alert ('Please select a product');
	return false;
	}	
}

function recalculate(upgrade) {
   
   if (!document.urchin5) return;
   var form = document.urchin5;

   // Alex Lanni - Added order type informations
   var order_type = form.order_type.value;

   //---grab form input and set internal quantities
   var bq, pq, lq, eq, cq, sq, psq, bsuq, psuq;
   bq = 1;
   if (upgrade) {
   		bq = 0;
   		psp = 0;
   }
   
   if(order_type != "support"){

	   if (form.pack_checkbox && form.pack_checkbox.checked == 0) {pq=0;}
	   else {
		  pq = parseInt(form.pack_quantitybox.value,10);
		  if ((pq < 1) && ( form.pack_checkbox.checked )) {pq=1;}
	   }
	   if (form.load_checkbox && form.load_checkbox.checked == 0) {lq=0;}
	   else {
		  lq = parseInt(form.load_quantitybox.value,10);
		  if ((lq < 1) && ( form.load_checkbox.checked )) {lq=1;}
	   }
	   if ( form.ecom_checkbox && form.ecom_checkbox.checked && !(form.psuite_checkbox && form.psuite_checkbox.checked)) {eq=1;} else {eq=0;}
	   if ( form.camp_checkbox && form.camp_checkbox.checked && !(form.psuite_checkbox && form.psuite_checkbox.checked)) {cq=1;} else {cq=0;}
	   
	   if ( form.supp_checkbox && form.supp_checkbox.checked ) {sq=1;} else {sq=0;}
	   if ( form.psuite_checkbox && form.psuite_checkbox.checked ) {psq=1;} else {psq=0;}
   }else{
	psq=0;
	sq=0;
	cq=0;
	eq=0;
	lq=0;
	pq=0;
   }
   
   if ( form.bsupport_checkbox && form.bsupport_checkbox.checked == 0) { 
		bsuq=0;
		//form.psupport_checkbox.disabled=false;
   } else { 
		
		bsuq = parseInt(form.bsupport_quantitybox.value,10);
		if ((bsuq < 1) && ( form.bsupport_checkbox.checked )) {bsuq=1;}
		//form.psupport_checkbox.disabled=true;
   }
   
   if ( form.psupport_checkbox && form.psupport_checkbox.checked == 0 ) { 
		psuq=0; 
		//form.bsupport_checkbox.disabled=false;
   } else { 
		psuq = parseInt(form.psupport_quantitybox.value,10);
		if ((psuq < 1) && ( form.psupport_checkbox.checked )) {psuq=1;}
		//form.bsupport_checkbox.disabled=true;		
   }
      
   //--- verify numbers 
   if (isNaN(bq) || (bq < 0) || (bq > 400)) {bq=0;}
   if (isNaN(pq) || (pq < 0) || (pq > 400)) {pq=0;}
   if (isNaN(lq) || (lq < 0) || (lq > 400)) {lq=0;}
   if (isNaN(eq) || (eq < 0) || (eq > 400)) {eq=0;}
   //if (isNaN(cq) || (cq < 0) || (cq > 400)) {cq=0;}
   if (isNaN(sq) || (sq < 0) || (sq > 400)) {sq=0;}
   if (isNaN(psq) || (psq < 0) || (psq > 400)) {psq=0;}
   if (isNaN(bsuq) || (bsuq < 0) || (bsuq > 400)) {bsuq=0;}
   if (isNaN(psuq) || (psuq < 0) || (psuq > 400)) {psuq=0;}

   //---set state quantities
   if (form.STATE_BASE_QUANTITY) form.STATE_BASE_QUANTITY.value = bq;
   if (form.STATE_PACK_QUANTITY) form.STATE_PACK_QUANTITY.value = pq;
   if (form.STATE_LOAD_QUANTITY) form.STATE_LOAD_QUANTITY.value = lq;
   if (form.STATE_ECOM_QUANTITY) form.STATE_ECOM_QUANTITY.value = eq;
   if (form.STATE_CAMP_QUANTITY) form.STATE_CAMP_QUANTITY.value = cq;
   if (form.STATE_SUPP_QUANTITY) form.STATE_SUPP_QUANTITY.value = sq;
   if (form.STATE_PSUITE_QUANTITY) form.STATE_PSUITE_QUANTITY.value = psq;

   //---set check boxes
   if (form.base_checkbox) if (bq > 0) form.base_checkbox.checked = 1; else form.base_checkbox.checked = 0;
   if (form.pack_checkbox) if (pq > 0) form.pack_checkbox.checked = 1; else form.pack_checkbox.checked = 0;
   if (form.load_checkbox) if (lq > 0) form.load_checkbox.checked = 1; else form.load_checkbox.checked = 0;
   if (form.ecom_checkbox) if (eq > 0) form.ecom_checkbox.checked = 1; else form.ecom_checkbox.checked = 0;
   if (form.camp_checkbox) if (cq > 0) form.camp_checkbox.checked = 1; else form.camp_checkbox.checked = 0;
   if (form.supp_checkbox) if (sq > 0) form.supp_checkbox.checked = 1; else form.supp_checkbox.checked = 0;
   if (form.psuite_checkbox) if (psq > 0) form.psuite_checkbox.checked = 1; else form.psuite_checkbox.checked = 0;
   if (form.bsupport_checkbox) if (bsuq > 0) form.bsupport_checkbox.checked = 1; else form.bsupport_checkbox.checked = 0;
   if (form.psupport_checkbox) if (psuq > 0) form.psupport_checkbox.checked = 1; else form.psupport_checkbox.checked = 0;
	
   //---enable/disable quantity boxes (pack/load)
   var packid, loadqt, loadam,bsupport,psupport;
   var packtx, loadtx, ecomtx, supptx, camptx, psuitetx;
   if (document.getElementById) {
      packid = document.getElementById("pack_quantitybox");
      loadqt = document.getElementById("load_quantitybox");
      loadam = document.getElementById("load_amountbox");
	  bsupport = document.getElementById("bsupport_quantitybox");
	  psupport = document.getElementById("psupport_quantitybox");
	  
      packtx = document.getElementById("pack_text");
      loadtx = document.getElementById("load_text");
      ecomtx = document.getElementById("ecom_text");
      camptx = document.getElementById("camp_text");
      supptx = document.getElementById("supp_text");
	  psuitetx = document.getElementById("psuite_text");
	 
   }
   if (pq > 0) {
      if (form.pack_checkbox.disabled == 0) {
         if (form.pack_quantitybox) form.pack_quantitybox.disabled = 0; 
         if (packid) {packid.style.border = "1px solid #BBBBBB";}
      }
   }
   else {
      if (form.pack_quantitybox) form.pack_quantitybox.disabled = 1;
      if (packid) {packid.style.border = "0px";}
   }
   if (lq > 0) {
      if (form.pack_checkbox.disabled == 0) {
         if (form.load_quantitybox) form.load_quantitybox.disabled = 0; 
         if (loadqt) {loadqt.style.border = "1px solid #BBBBBB";}
      }
   }
   else {
      if (form.load_quantitybox) form.load_quantitybox.disabled = 1;
      if (loadqt) {loadqt.style.border = "0px";}
   }
   if(bsuq > 0) {
	   if (form.bsupport_checkbox.disabled == 0){
	   		if (form.bsupport_quantitybox) form.bsupport_quantitybox.disabled = 0;
			if (bsupport) {bsupport.style.border = "1px solid #BBBBBB";}
	   }
   }else{
      if (form.bsupport_quantitybox) form.bsupport_quantitybox.disabled = 1;
      if (bsupport) {bsupport.style.border = "0px";}
   }
   if(psuq > 0) {
	   if (form.psupport_checkbox.disabled == 0){
	   		if (form.psupport_quantitybox) form.psupport_quantitybox.disabled = 0;
			if (psupport) {psupport.style.border = "1px solid #BBBBBB";}
	   }
   }else{
      if (form.psupport_quantitybox) form.psupport_quantitybox.disabled = 1;
      if (psupport) {psupport.style.border = "0px";}
   }

   //---set quantity box values
   if (form.base_quantitybox) form.base_quantitybox.value = bq;
   if (form.pack_quantitybox) form.pack_quantitybox.value = pq;
   if (form.load_quantitybox) form.load_quantitybox.value = lq;
   if (form.ecom_quantitybox) form.ecom_quantitybox.value = eq;
   if (form.camp_quantitybox) form.camp_quantitybox.value = cq;
   if (form.supp_quantitybox) form.supp_quantitybox.value = sq;
   if (form.psuite_quantitybox) form.psuite_quantitybox.value = psq;
   if (form.bsupport_quantitybox) form.bsupport_quantitybox.value = bsuq;
   if (form.psupport_quantitybox) form.psupport_quantitybox.value = psuq;
   

   //---set amount boxes
   if (form.base_amountbox) form.base_amountbox.value = formatMoney((base_startprice * bq),2);
   if (form.pack_amountbox) form.pack_amountbox.value = formatMoney((pack_startprice * pq),2);
   if (form.load_amountbox) form.load_amountbox.value = formatMoney((load_startprice * lq),2);
   if (form.ecom_amountbox) form.ecom_amountbox.value = formatMoney((ecom_startprice * eq),2);
   if (form.camp_amountbox) form.camp_amountbox.value = formatMoney((camp_startprice * cq),2);
   if (form.psuite_amountbox) form.psuite_amountbox.value = formatMoney((psuite_startprice * psq),2);
   
   if(order_type != "support"){
	   if (form.bsupport_amountbox) form.bsupport_amountbox.value = formatMoney((bsupport_startprice * bsuq),2);
	   if (form.psupport_amountbox) form.psupport_amountbox.value = formatMoney((psupport_startprice * psuq),2);
   }else{
	   if (form.bsupport_amountbox) form.bsupport_amountbox.value = formatMoney((bsupport_startprice_full * bsuq),2);
	   if (form.psupport_amountbox) form.psupport_amountbox.value = formatMoney((psupport_startprice_full * psuq),2);
   }

   //---set support amount and subtotal
   var total = subtotal = supportamount = discount = 0;
   if (form.discount) discount = form.discount.value;
   if(order_type != "support"){
   		subtotal = base_startprice*bq + pack_startprice*pq + load_startprice*lq + ecom_startprice*eq + camp_startprice*cq + psuite_startprice*psq + bsupport_startprice*bsuq +psupport_startprice*psuq;
   }else{
   		subtotal = base_startprice*bq + pack_startprice*pq + load_startprice*lq + ecom_startprice*eq + camp_startprice*cq + psuite_startprice*psq + bsupport_startprice_full*bsuq +psupport_startprice_full*psuq;
   }
   
   if (sq > 0) { supportamount = 0.20*subtotal; }
   else if (form.sup_pro){
      supportamount = parseInt(subtotal*100)*support/100;
      form.sup_pro.value=formatMoney(supportamount,2);
   }
   total = subtotal + supportamount - discount;
   if (form.supp_amountbox) form.supp_amountbox.value = formatMoney(supportamount,2);
   if (form.total) form.total.value = formatMoney(total, 2);
}

function validate_lic1(ertmsg,erlmsg) {
   var form=document.urchin5;

   //--- check the total
   if (form && form.total) {
      if (!form.total.value || form.total.value == 0 || form.total.value == "0 EUR") { 
         alert(ertmsg);
         return false;
      }
   }

   //--- license
   if (form.serial_code) {
      var myRegex = /\b[a-z0-9]{24}\b/i;
      var serial_code = form.serial_code.value.replace(/ /g,"");
      form.serial_code.value = serial_code;
      if(!myRegex.test(serial_code)){
         alert (erlmsg);
         return false;
      }
   }
}

function set_State()
{
   if (!document.urchin5.state || document.urchin5.state.type != "select-one") return;
   if (!document.urchin5.country || document.urchin5.country.type != "select-one") return;
   var state_index=document.urchin5.state.selectedIndex;
   var country_index = document.urchin5.country.selectedIndex;
   if ( state_index > 0 && (country_index==1 || country_index==39 || country_index==226)) {
      document.urchin5.state.options[0].selected = 1;
   } else if (country_index!=1 || country_index!=39 || country_index!=226) {
      document.urchin5.state.options[1].selected = 1;
   }
}

function set_Country()
{
   if (!document.urchin5.state || document.urchin5.state.type != "select-one") return;
   if (!document.urchin5.country || document.urchin5.country.type != "select-one") return;
   var state_index=document.urchin5.state.selectedIndex;
   var country_index = document.urchin5.country.selectedIndex;
   if ( state_index == 1 && (country_index==1 || country_index==39 || country_index==226)) {
      document.urchin5.country.options[0].selected = 1;
   } else if ( document.urchin5.state.options[state_index].text.indexOf("(Canada)") > 0 ) {
      document.urchin5.country.options[39].selected = 1;
   } else if ( document.urchin5.state.options[state_index].value.indexOf("ZZ") < 0 ) {
      document.urchin5.country.options[1].selected = 1;
   }
}

function check_Fields(form,purchase) {

   //--- setup required fields
   var required_fields = new Array();
   if (purchase == 1) {
      required_fields[required_fields.length] = 'cc_first_name'; 
      required_fields[required_fields.length] = 'cc_last_name'; 
      required_fields[required_fields.length] = 'cc_method'; 
      required_fields[required_fields.length] = 'cc_number'; 
      required_fields[required_fields.length] = 'cc_exp_month'; 
      required_fields[required_fields.length] = 'cc_exp_year'; 
   }
   required_fields[required_fields.length] = 'first_name';
   required_fields[required_fields.length] = 'last_name'; 
   required_fields[required_fields.length] = 'street1'; 
   required_fields[required_fields.length] = 'city'; 
   required_fields[required_fields.length] = 'state'; 
   required_fields[required_fields.length] = 'zipcode'; 
   required_fields[required_fields.length] = 'country'; 
   required_fields[required_fields.length] = 'work_phone'; 
   required_fields[required_fields.length] = 'email';

   var count=0;
   var complete=true;
   var msg = message;

   for (var j = 0; j < required_fields.length; j++) {
      var jname = required_fields[j];
      for (var i = 0; i < form.elements.length; i++) {
         var val = form.elements[i].value;
         var nam = form.elements[i].name;
         if (form.elements[i].name == jname) {
            if(form.elements[i].type=="text" && form.elements[i].value == "") {
               complete=false;
               count+=1;
               msg+= "   * "+realValues[form.elements[i].name] + "\n";
            }
            else if(form.elements[i].type=="select-one" ) {
               if ( jname == "state" || 
                  jname == "country" ||
                  jname == 'cc_method' ||   
                  jname == 'cc_exp_month' ||
                  jname == 'cc_exp_year'
               ) {
                  if (form.elements[i].selectedIndex == 0) {
                     msg+="   * "+realValues[form.elements[i].name] + "\n";
                     complete=false;
                     count+=1;
                  }
               }
            } else if(form.elements[i].type=="radio") {
               if(form.elements[i].checked == false && form.elements[i+1].checked == false) {
                  complete=false;
                  count+=1;
                  msg+= "   * "+realValues[form.elements[i].name] + "\n";
               }
            }
            i = 50;
         }
      }
   }
   if (form.cc_email && form.cc_email.value == "") {
      complete=false;
      count+=1;
      msg+= "   * "+realValues['cc_email'] + "\n";
   }
   if (form.reseller) {
      if (form.reseller[0].checked == false && form.reseller[1].checked == false){
         complete=false;
         count+=1;
         msg+= "   * "+realValues['reseller'] + "\n";
      } else if (form.reseller[0].checked == true && form.reseller_name &&
                 form.reseller_name.value == "") {
         complete=false;
         count+=1;
         msg+= "   * "+realValues['reseller_name'] + "\n";
      }
   }
   if(count>0) { alert(msg); }
   return complete;
   return false;
}

function formatMoney(x) {
   if (isNaN(x)) {return "0 EUR";}
   if (x == 0) {return "0 EUR";}
   var root = " EUR";
   var y = Math.round((x * 100), 0);
   if (y < 0) {root = "-" + root; y=-1*y;}
   var s = y.toString();
   var l = s.length;
   if (l == 1) {return root + "0.0" + s;}
   if (l == 2) {return root + "0." + s;}
   s = s.substring(0,l-2) + "." + s.substring(l-2);
   return s + root;
}

function Reseller(x) {
   var me1 = document.getElementById("reseller_yes");
   var me2 = document.getElementById("reseller_no");
   if (x == 1){
      me1.style.display = "";
      me2.style.display = "none";
   } else {
      me1.style.display = "none";
      me2.style.display = "";
   }
}


function changeSupportPlan(referrer, upgrade){
	if(referrer.name == "bsupport_checkbox" && referrer.checked == true){
		document.urchin5.psupport_checkbox.checked = false;
	}

	if(referrer.name == "psupport_checkbox" && referrer.checked == true){
		document.urchin5.bsupport_checkbox.checked = false;
	}
	
	recalculate(upgrade);
}

// Functions specific to Urchin 6 form
function recalculateUrchin6() {
	total = 0;
	
	amount = document.urchin6.urchin6_quantitybox.value * document.getElementById('urchin6_price').innerHTML;
	document.urchin6.urchin6_amountbox.value = formatMoney(amount);
	total = total + amount;
	
	amount = document.urchin6.support10h_quantitybox.value * document.getElementById('support10h_price').innerHTML;
	document.urchin6.support10h_amountbox.value = formatMoney(amount);
	total = total + amount;
	
	document.urchin6.total.value = formatMoney(total);
}

function submitFormUrchin6() {
	if (document.urchin6.urchin6_quantitybox.value==0 && document.urchin6.support10h_quantitybox.value==0) {
		alert("Attenzione: per proseguire con l'ordine devi selezionare almeno un prodotto o un servizio!");
	} else {
		document.urchin6.submit();
	}
}


// Functions specific to Urchin 7 form
function recalculateUrchin7() {
	total = 0;
	
	amount = document.urchin7.urchin7_quantitybox.value * document.getElementById('urchin7_price').innerHTML;
	document.urchin7.urchin7_amountbox.value = formatMoney(amount);
	total = total + amount;
	
	amount = document.urchin7.support10h_quantitybox.value * document.getElementById('support10h_price').innerHTML;
	document.urchin7.support10h_amountbox.value = formatMoney(amount);
	total = total + amount;
	
	document.urchin7.total.value = formatMoney(total);
}

function submitFormUrchin7() {
	if (document.urchin7.urchin7_quantitybox.value==0 && document.urchin7.support10h_quantitybox.value==0) {
		alert("Attenzione: per proseguire con l'ordine devi selezionare almeno un prodotto o un servizio!");
	} else {
		document.urchin7.submit();
	}
}

