var v_focus="";
var v_list="";
var act_date="";
var deliver_date="";
var calLang = "de";

var class_label="label";
var class_field="field";
var class_list="form-select";

var class_label_error="label error";
var class_field_error="field error";
var class_list_error="form_select error";


function t_class(t_l,t_c) {
	if(t_c == "")
	  return;
	document.getElementById(t_l).className = t_c ;
}

function t_value(t_l) {
	var value=document.getElementById(t_l).value;
	return(value);
}

function t_select(t_l) {
	var value=document.getElementById(t_l).options[document.getElementById(t_l).selectedIndex].value;
	return(value);
}

function t_input(t_l,t_v) {
document.getElementById(t_l).value=t_v;
}

function t_display(t_l,t_v) {
	document.getElementById(t_l).style.display = t_v;
}

function t_focus(t_l) {
	document.getElementById(t_l).focus();
}

function t_html(t_l,t_t) {
	document.getElementById(t_l).innerHTML = t_t ;
}

/* Klickcodes aus der Menuezeile
 * op_code ist der Maskencode
 * cl_code wo der User hinmoechte
 */ 
function set_cl(op_code,cl_code) {
	// Gleiche Maske
	if(cl_code == op_code)
	  return;

	switch(op_code) {
    case '1' :  document.cart_view.op_action.value="1";
		  document.cart_view.cl_code.value=cl_code;
      document.cart_view.submit();
      break;
    case '2' :  // Validiert wird nur wenn der User in der Progress Bar weitergeht
			if(cl_code > op_code) {
				$('FORM.order').submit();
        break;
      }
		  document.cart_order.op_code.value="2";
		  document.cart_order.cl_code.value=cl_code;
	  	document.cart_order.submit();
			break;
    case '3' :  // Validiert wird nur wenn der User in der Progress Bar weitergeht
			if(cl_code > op_code) {
				$('FORM.payment').submit();
        break;
      }
			if(cl_code > op_code) {
		    if(validate_payment()) {// Maske ist fehlerfrei
		      document.cart_payment.op_code.value="3";
		      document.cart_payment.cl_code.value=cl_code;
		      document.cart_payment.submit();
				} else {   // Fehler in der Maske keine Aktion
					document.cart_payment.op_code.value="3";
					document.cart_payment.cl_code.value="3";
        }
        return;
      }
	 	  document.cart_payment.op_code.value="3";  
	 	  document.cart_payment.cl_code.value=cl_code;  
		  document.cart_payment.submit();
      break;
    case '4' :  
    	document.cart_overview.op_code.value="4";  
	  	document.cart_overview.cl_code.value=cl_code;
	  	document.cart_overview.submit();
      break;
   }
}

/* Warenkorb aktualisieren
 * 
 */ 
function set_update() {
	document.cart_view.op_code.value="1";
	document.cart_view.cl_code.value="1";
	document.cart_view.submit();
	return;
}

/*  Nur im Warenkorb
 *  Das Handle kommt aus den Submit Buttons
 */
function cart_action(op_action,op_item) {
	// Der op_code ist immer 1
	document.cart_view.op_code.value="1";  
	// Aktion handle
	switch(op_action)
	{
		// Loschen von Artikeln
		case '0':  
    	document.cart_view.op_action.value="0";
      document.cart_view.op_item.value=op_item;
			break;
		// Aktualisieren
		case '1':  
			document.cart_view.op_action.value="1";
			document.cart_view.cl_code.value="1";
			break;
		// Weiter zu Rechnung und Versand
    case '2' : 
    	document.cart_view.op_action.value="2";
 			document.cart_view.cl_code.value="2";
			break;
		// Weiter zu Rechnung und Versand aber nur Angebotsanfoderung
    case '3' : 
    	document.cart_view.op_action.value="3";
 			document.cart_view.cl_code.value="2";
			break;
	}
	document.cart_view.submit();
	return;
}

/* Aus Rechungs und Lieferanschrift kann auch der
 * Zahlungsmaske uebersprungen werden
 * dann kommen wir gleich in die Übersicht
 */
function order_action(op_action) {
	document.cart_order.op_action.value=op_action;
}

function popUp_Password(on_off) {
	t_display('shop_newemail','none');
	if(on_off == "0")
	  t_display('shop_password','block')
	else
		t_display('shop_password','none');
}

function popUp_NewEmail(on_off) {
	t_display('shop_password','none');
	if(on_off == "0")
  	t_display('shop_newemail','block')
  else
		t_display('shop_newemail','none');
}

function set_creditcard_select_box(map_index) {
	document.cart_payment.Ecom_Payment_Card_Type.options[map_index].selected = true;
	set_payment_option();
}

function set_payment_option(t_l) {
	document.cart_payment.Ecom_Payment[2].checked=true;
}

function set_customer_option() {
	document.cart_payment.Ecom_Customer[0].checked=true;
}

function x_request() {
	if(window.XMLHttpRequest)
  {
  	xmlHttp = new XMLHttpRequest();
  }
  else
  {
		if(window.ActiveXObject)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
  }
}

function check_field(t_l) {
	var t_v=t_value(t_l);
	var label_id="label_id_" + t_l;
	var field_id="field_id_" + t_l;
	
	// Fehlerfall
	// Class des Labels und des Fields umsetzen
	if(t_v == "") {
	  t_class(label_id,class_label_error);
	  t_class(field_id,class_field_error);
	  return false;
	}
	t_class(label_id,class_label);
	t_class(field_id,class_field);
	return true;
}

function check_list(t_l,t_t) {
	var t_v=t_value(t_l);
	var label_id="label_id_" + t_l;
	var list_id=t_l;
	// Fehlerfall
	// Der Listeneintrag ist nicht der den wir wollen
	// z.B. Default Listeneinträge
	// Class des Labels und des Fields umsetzen
	if(t_v == t_t )
	{
		t_class(label_id,class_label_error);
		t_class(list_id,class_list_error);
		return false;
	}
	t_class(label_id,class_label);
	t_class(list_id,class_list);
	return true;
}

function v_string(t_l) {
	var t_v=t_value(t_l);
	var e_l=t_l + "_Error";
	if(t_v == "")
  {
	  t_display(e_l,'block');
  	if(v_focus == "")
			t_focus(t_l);
  	return(0);
  }
	t_display(e_l,'none');
	return(1);
}

function check_phone(t_l,t_v1,t_v2) {
	var label_id="label_id_" + t_l;
	var field_id="field_id_" + t_l;
	var ret_code=1;
	if(t_v1 == "")
	  ret_code=0;
	if(t_v2 == "")
	  ret_code=0;
	if(ret_code == 0)
  {
	  t_class(label_id,class_label_error);
	  t_class(field_id,class_field_error);
	  return false;
  }
	t_class(label_id,class_label);
	t_class(field_id,class_field);
	return true;
}

function unlock_freight() {
	t_v=t_value('Ecom_Shipping_Shipment');
	if(t_v!="VersandSpedition") {
	  document.cart_view.Ecom_ReceiptTo_Postal_StateProv.disabled=true;
	  document.cart_view.Ecom_ReceiptTo_Postal_PostalCode.disabled=true;
	} else {
	  document.cart_view.Ecom_ReceiptTo_Postal_StateProv.disabled=false;
	  document.cart_view.Ecom_ReceiptTo_Postal_PostalCode.disabled=false;
  }
	return;
}

function fill_postalcodelist(c_form,c_url) {
  c_land_id="Ecom_"+c_form+"_Postal_StateProv";
  c_plz_id ="Ecom_"+c_form+"_Postal_PostalCode";
	if(c_form == "delivery" ||  c_form == "freight")
  {
	  c_land_id="Ecom_ReceiptTo_Postal_StateProv";
	  c_plz_id="Ecom_ReceiptTo_Postal_PostalCode";
  }
	c_land=t_select(c_land_id);
	c_plz=t_value(c_plz_id);
	v_list=c_form + "_postalcodelist";
	switch(c_land)
	{
		case 'DE':
		case 'FR':
		case 'CH':
		case 'AT':
		case 'NL':
		case 'GB':
				break;
		default:
		return;
	}
	if(c_plz.length < 2)
  {
	  t_display(v_list,'none')
	  return;
  }
	var xmlUrl = c_url + "/postal_code.php?cLand=" + c_land + "&cPlz=" + c_plz + "&cMask=" + c_form;
	x_request();
	if(!xmlHttp)
	  return(0);

	xmlHttp.open("GET", xmlUrl, true);
	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
		  c_list=xmlHttp.responseText;
		  if(c_list == "")
		    return;
		  t_html(v_list,c_list);
		  t_display(v_list,'block');
	  }
	}
	xmlHttp.send(null);
	return;
}

function close_freight_list() {
	// Frachtkostenplzliste schliessen PLZ leeren
	t_l='freight_postalcodelist';
	t_display(t_l,"none");
	
	t_l='Ecom_ReceiptTo_Postal_PostalCode';
	t_input(t_l,'');
}
	
function set_postalcode(c_plz,c_ort,c_form) {
	var c_list=c_form + "_postalcodelist";
  c_ort_id="Ecom_"+c_form+"_Postal_City";
  c_plz_id="Ecom_"+c_form+"_Postal_PostalCode";
	if(c_form == "delivery" || c_form == "freight") {
	  c_ort_id="Ecom_ReceiptTo_Postal_City";
	  c_plz_id="Ecom_ReceiptTo_Postal_PostalCode";
	}
	
	t_input(c_ort_id,c_ort);
	t_input(c_plz_id,c_plz);
	t_display(c_list,'none');
	
	// Anfrage kommt aus dem Warenkorb mit Frachtkostenauswahl
	if(c_form == "freight")
	  set_update();
	return;
}

// Kundendatenueberpruefung
function validate_register(c_url) {
	var ret_code=1;
	var cDate = new Date();
	var cTime=cDate.getTime();
	var cValue="";
	
	// Neuer Kunde
	if(document.cart_payment.Ecom_Customer[0].checked ==  false)
	  return true;

	if(!check_field('Ecom_Customer_Password'))
	  ret_code=0;

	t_display('Ecom_Message_Error','none');

	c_nr=t_value("Ecom_Customer_kundennr");
	c_email=t_value("Ecom_Customer_Email");
	c_password=t_value("Ecom_Customer_Password");
	c_kundenid=t_value("Ecom_kundenid");
	label_id1="label_id_Ecom_Customer_kundennr";
	field_id1="field_id_Ecom_Customer_kundennr";
	label_id2="label_id_Ecom_Customer_Email";
	field_id2="field_id_Ecom_Customer_Email";
	
	if(c_nr == "" && c_email == "") {
	  t_class(label_id1,class_label_error);
	  t_class(field_id1,class_field_error);
	  t_class(label_id2,class_label_error);
	  t_class(field_id2,class_field_error);
	  ret_code=0;
  } else {
		t_class(label_id1,class_label);
		t_class(field_id1,class_field);
		t_class(label_id2,class_label);
		t_class(field_id2,class_field);
	}

	if(ret_code == 0) {
  	t_display('Ecom_Message_Error','block');
  	return false;
  }

	var xmlUrl = "/index.php?eID=login&typ=login&user=" + c_nr + "&pass=" + $.md5(c_password) + "&cEmail=" + c_email+ "&ckundenid=" + c_kundenid +  "&cTime=" + cTime;
	x_request();
	if(!xmlHttp)
  	return(0);
	ret_code=0;
	xmlHttp.open("GET", xmlUrl, true);
	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  		cValue=xmlHttp.responseText;
  		if(cValue == "0") {
				t_html('Ecom_Message_Error','Ihre eingegebenen Daten sind nicht richtig');
				t_display('Ecom_Message_Error','block');
  			return false;
  		}
  		if(cValue == "1") {
				t_display('Ecom_Message_Error','none');
				// Weiter zu R&V
				document.cart_payment.cl_code.value="2";;
    		document.cart_payment.submit();
    	}
		}
	}
	xmlHttp.send(null);
	return false;
}

// CVC Code Prüfung
function v_cvc(t_l) {
	var t_v=t_value(t_l);
	if(t_v.length != 3)
  	return false;
	if(isNaN(t_v))
  	return false;
	return true;
}

function check_card(t_l1,t_l2) {
	var ccNum=t_value(t_l1);
	var ccType=t_value(t_l2);
	var ccIndex="";
	var vInt = "0123456789";
	var w = "";
	
	if(!check_field(t_l1))
	  return false;

	// Nur Numern zulassen
	ccNum=ccNum.replace(/[^0-9]/g,"");

	if(isNaN(ccNum))
	  return false;

	// Geänderten Wert zurückschreiben
	t_input(t_l1,ccNum);

	// Einfache Ueberpruefung  ohne Online Check
	ccLength=ccNum.length;
	switch(ccType) {
		case 'visa': 
			if(ccLength != 16 && ccLength != 13)
				return false;
		  if(ccNum.substr(0,1) != "4")
				return false;
		  break;
		case 'master': 
			if(ccLength != 16 ) 
				return false;
		  ccIndex=ccNum.substr(0,2);
		  if(ccIndex != "51" && ccIndex != "52" && ccIndex  != "53" && ccIndex != "54" && ccIndex != "55") 
				return false;
		  break;
    case 'amex': 
    	if(ccLength != 16 ) 	
				return false;
		  ccIndex=ccNum.substr(0,2);
		  if(ccIndex != "34" && ccIndex != "37") 
				return false;
		  break;
    case 'diners': 
    	if(ccLength != 16 ) 	
				return false;
		  ccIndex=ccNum.substr(0,2);
		  if(ccIndex != "34" && ccIndex != "37") 
				return false;
		  break;
	}
	// Pruefung auf numerische Werte
	for(i=0; i < ccNum.length; i++) {
		x = ccNum.charAt(i);
		if (vInt.indexOf(x,0) != -1)
			w += x;
	}
	// validate number
	j = w.length / 2;
	if (j < 6.5 || j > 8 || j == 7)
		return false;
	k = Math.floor(j);
	m = Math.ceil(j) - k;
	c = 0;
	for(i=0; i<k; i++) {
		a = w.charAt(i*2+m) * 2;
		c += a > 9 ? Math.floor(a/10 + a%10) : a;
	}
	for(i=0; i<k+m; i++)
		c += w.charAt(i*2+1-m) * 1;
	return (c%10 == 0);
}
//
//function select_day(d_c,type) { //---Select one Day, Hide Calendar
//	var ny=act_date.getYear();
//	if (ny < 999) ny+=1900;
//	var select_date = new Date(ny,act_date.getMonth(),d_c,23,59,59);
//	var now_date = new Date();
//}  
//
//function strtodate(str) { //--Convert: dd.mm.yyyy -> Date
//	t_d=str.substring(0,2);
//	t_m=str.substring(3,5);
//	t_y=str.substring(6,10);
//	t_m=parseInt(t_m,10)-1;
//	return new Date (t_y,t_m,t_d);
//}
//
//function datetostr(date) {//--Convert: Date -> dd.mm.yyyy
//	var str_y=""; var str_m=""; var str_d=""; var str=""
//	var t_m=date.getMonth(); t_m++;
//	var t_y=date.getYear();
//	var t_d=date.getDate();
//	  
//	if (t_y < 999) t_y+=1900;
//	  str_y = t_y.toString();
//	    
//	if (t_m < 10) str_m = "0" + t_m.toString();
//	  else str_m = t_m.toString();
//	  
//	if (t_d < 10) str_d = "0" + t_d.toString();
//	  else str_d = t_d.toString();
//	
//	str = str_d + "." + str_m + "." + str_y;
//	
//	return str;
//}

function set_payment_option(t_l) {
	document.cart_payment.Ecom_Payment[2].checked=true;
}

// Gueltigkeitszeitpunkt der Kreditkarte
function check_expiration(c_m,c_y) {
	v_day = new Date(); 
	v_m = v_day.getMonth()+1; 
	v_y = v_day.getYear()+1900;
	if(c_y == v_y)
	  if(c_m < v_m)
	    return false;
	return true;
}
