// globals
var customer_id;
var order_id;
var product_id;
var months_g;
var persons_g;

function checkSelections() {
    var fieldValues = new Array(
        $("#ssn").val(),
        $("#phone").val(),
        $("#email").val()/*,
		$('input:radio[name=amount]:checked').val()*/
    );
    var fieldNames = new Array(
        "ssn",
        "phone",
        "email"/*, // 2
		'amount' <- DENNA SKA KÖRAS PÅ NYA FUNKTIONALITETEN*/
    );
    var fieldsLength = fieldValues.length;
    var i = 0;
    var passed = true;
	var pnr = new personnummer(fieldValues[0]);
    for(i=0;i<fieldsLength; i++) {
        var correct_bl = true;

        switch(i) {
			case 0:
				if(!pnr.valid) {
					correct_bl = false;
					passed = false;
				} else {
					correct_bl = true;
				}
			break;

            case 2:
                if(!fieldValues[i].match(/^[a-z0-9_\-\.]{1,150}@[a-z0-9_\-\.]{1,150}\.[a-z]{2,6}$/i)) {
                    correct_bl = false;
                    passed = false;
                } else {
                    correct_bl = true;
                }
            break;
			
			case 3:
				if ( fieldValues[i] == undefined || fieldValues[i] == '' ) {
					correct_bl = false;
					passed = false;
				} else
					correct_bl = true;
				
				break;
            default:
                if(fieldValues[i] == "") {
                    correct_bl = false;
                    passed = false;
                }
            break;
        }

        if(!correct_bl) {
            $("#"+fieldNames[i]).addClass("error");
			$("#"+fieldNames[i]+"_err").show();
        } else {
            $("#"+fieldNames[i]).removeClass("error");
			$("#"+fieldNames[i]+"_err").hide();
        }
    }
	
    return passed;
}

function personnummer(nr){
	this.valid=false;
	if(!nr.match(/^(\d{2})(\d{2})(\d{2})(\d{4})$/)){ return false; }
	this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
	this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
	this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
	if(this.month*1<1||this.month*1>12||this.day*1<1||this.day*1>months[this.month*1-1]){ return false; }
	this.alldigits=this.year+this.month+this.day+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
	this.sex=parseInt(this.controldigits.substring(2,3))%2;
}

function callGetCustomer(ssn,email,phone, months,persons,productId){

	var params ="";
	params += "ssn="+ssn;
	params += "&email="+email;
	params += "&phone="+phone;

	var url = urlGetCustomer;/*"/functions/getCustomer.php";*/

	var xmlHttp = getxmlHttp();
	xmlHttp.open("POST", url, true);

	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf8");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");

	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4) {

			var response = xmlHttp.responseText;

			response_ar = new Array();

			response_ar = response.split("|");

			$("#status").html(response_ar[1]);

//			alert(response_ar[0]);

			if(response_ar[0]=='1'){

				$("#status").html("Bekräftar order");
				$("#firstname").html(response_ar[3]);
				$("#lastname").html(response_ar[4]);
				$("#address").html(response_ar[5]);
				$("#pcode").html(response_ar[6]);
				$("#paddress").html(response_ar[7]);

				$("#orderinfo").show();
				$("#loading").hide();

				customer_id = response_ar[2];
				order_id = response_ar[8];
				months_g = months;
				persons_g = persons;
				product_id= productId;

			} else {

				$("#spinner").hide();
				return false;

			}

		}
	}
	xmlHttp.send(params);
}

function callInsertOrder(){

	$("#orderinfo").hide();
	$("#loading").show();

	var params ="";
	params += "customer_id="+customer_id;
	params += "&months="+months_g;
	params += "&persons="+persons_g;

	params += "&order_id="+order_id;
	params += "&product_id="+product_id;

	var url = urlInsertOrder;/*"functions/insertOrder.php";*/

	var xmlHttp = getxmlHttp();
	xmlHttp.open("POST", url, true);

	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf8");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");

	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4) {

			var response = xmlHttp.responseText;

			response_ar = new Array();

			//alert(response);

			response_ar = response.split("|");

			//alert(response_ar);

			$("#status").html(response_ar[1]);

			//alert(response);

			if(response_ar[0]=='1'){

				callShipOrder(order_id,response_ar[2]);


			} else {

				$("#spinner").hide();
				return false;

			}

		}
	}
	xmlHttp.send(params);
}

function callShipOrder(order_id, invoiceNo){

	//alert(order_id+" <> "+ invoiceNo);

	$("#spinner").show();

	var params ="";
	params += "&order_id="+order_id;
	params += "&invoiceNo="+invoiceNo;

	// only for internal testing
	params += "&a_orderid="+invoiceNo;

	var url = urlShipOrder;/*"/functions/shipOrder.php";*/

	var xmlHttp = getxmlHttp();
	xmlHttp.open("POST", url, true);

	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf8");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");

	xmlHttp.onreadystatechange = function() {
		if(xmlHttp.readyState == 4) {

			var response = xmlHttp.responseText;

			response_ar = new Array();

			//alert(response);

			response_ar = response.split("|");

			//alert(response_ar);

			$("#status").html(response_ar[1]);

			if(response_ar[0]=='1'){

				document.getElementById('spinner').src = "images/immolina/bock.jpg";


			} else {

				$("#spinner").hide();
				return false;

			}

		}
	}
	xmlHttp.send(params);
}

function writeHtml(data,id){

	document.getElementById(id).innerHTML = data;

}

/* Call on this function to get a xmlHttp object, used for ajax data transfer / communication */
function getxmlHttp() {
	var xmlHttp=null;
	try {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	  } catch (e) {
	  // Internet Explorer
		try {
		 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
			  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
			 alert("Your browser does not support AJAX!");
			 return false;
			}
		}
	  }

	  return xmlHttp;
}
