var OKColor = '#11F030';
var errorColor = '#FF0000';
var stdColor = '#FFFFFF';
var errorColor2 = '#FEFF6F';

function initPage(){
    $('formfield').style.display ='none';
   	setTimeDate();
}

function feedback(feedbacktype) {
	if(!$('newform')) {
	 	effectShow('formfield');
	}
    var value = feedbacktype;
	var url    = "kontakt/ajaxcom/feedbacktype.php"
	var pars   = "feedback=" + escape(value);
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onComplete: showfeedback} );
}

function checkMessage(strText){
	var success = false;
	new Ajax.Request("check.php", {
	parameters: "strText="+strText,
	method: "get",
  	onSuccess: function(transport) {
    	if (transport.responseText == "200"){
    		sendMessage("messageResult");
    	} else {
    		entityAlert("Feil kode. Fors&oslash;k igjen");
    	}
  	}
});
}

//temp
function checkMessage_mailto(strText){
	var success = false;
	new Ajax.Request("check.php", {
	parameters: "strText="+strText,
	method: "get",
  	onSuccess: function(transport) {
    	if (transport.responseText == "200"){
    		sendMessage_mailto("messageResult");
    	}else {
    		entityAlert("Feil kode. Fors&oslash;k igjen");
    	}
  	}
});
}

function sendMessage(resultElem){
	var elements = document.getElementsByName("contact");
	var validateType ="";
	var message = "";
	for (i = 0; i < elements.length; i++){
		if (elements[i].checked == true) {
		validateType = elements[i].value;
		}
	}
	if (validateForm(validateType)){
		message = buildMessage();
		sendXML(message, resultElem, "message", "sendWSButton");
		$("sendWSButton").disabled = true;
	}
}

//temp
function sendMessage_mailto(resultElem){
	var elements = document.getElementsByName("contact");
	var validateType ="";
	var message = "";
	for (i = 0; i < elements.length; i++){
		if (elements[i].checked == true) {
		validateType = elements[i].value;
		}
	}
	if (validateForm(validateType)){
		message = buildMessage_mailto();
		sendXML_mailto(message, resultElem, "message", "sendWSButton");
		$("sendWSButton").disabled = true;
	}
}


var itype = "";
function sendFollowup(resultElem){
	var text = $("comments").value;
	itype = $("iType").value;
	if (text.length > 5){
		var xml = buildFollowUp();
		$('sendResponseButton').disabled = true;
		sendXML(xml, resultElem, "followUp", "sendResponseButton");
	}else {
		entityAlert("Teksten er for kort. Skriv mer utfyllende.");
	}
}

function buildFollowUp(){
	XMLStr = '<fromInternet>';
	XMLStr += '<iFeedID>' +  $("iFeedID").value  +'</iFeedID>';
	XMLStr += '<sCRC>' +  $("sCRC").value  +'</sCRC>';
	XMLStr += '<sDescription>' +  $("comments").value  +'</sDescription>';
	XMLStr += '</fromInternet>';

	return XMLStr;
}

function buildMessage() {
	var XMLstr = "";
	var comments = $F('comments');
	var date = $F('date3');
	var time = $F('time3');
	var route = $F('route');
	var from = $F('from');
	var to = $F('to');
	var terminal = $F('terminal');
	var transport = $F('transport');

	var elements = document.getElementsByName("contact");
	var contact ="";

	for (i = 0; i < elements.length; i++){
        if (elements[i].checked == true) {
           contact = elements[i].value;
		}
    }

	if($('newform')) {
		var about = '';
		for (i = 0; i < $('fjordlineform').about.length; i++) {
			if($('fjordlineform').about[i].checked) about = $('fjordlineform').about[i].value;
		}
		var topic = '';
		for (i = 0; i < $('fjordlineform').topic.length; i++) {
			if($('fjordlineform').topic[i].checked) topic = $('fjordlineform').topic[i].value;
		}
	} else {
		var about = '7';
		var topic = 'Ikke valgt';
	}

	var firstname = $F('firstname');
	var lastname = $F('lastname');
	var adress = $F('adress');
	var postalcode = $F('postalcode');
	var city = $F('city');
	var email = $F('email');
	var phone = $F('phone');
	var dob = $F('dob');
	var cardno = $F('col_card_no');

	//NOTE: This string (XMLString is sensitive towards special characters - ex. "&") Fix later.

	var description = '';
	if(about == 22 || about == '22') {
		description += "\n" +'Fødselsdato: ' + dob;
		description += "\n" +'Kolumbuskortnr: (11500 601) ' + cardno;
	}
	description += "\n" +'Rutenr: ' + route;
	description += "\n" +'Område/tema: ' + topic;
	description += "\n" +'Fra: ' + from;
	description += "\n" +'Til: ' + to;
	description += "\n" +'Transporttype: ' + transport;
	description += "\n" +comments;
// 	alert(description);

	XMLstr = '<fromInternet>';
	XMLstr += '<iInternetEntityID>1</iInternetEntityID>';
	XMLstr += '<sDescription>' + description + '</sDescription>';
	XMLstr += '<bContact>' + contact + '</bContact>';
	XMLstr += '<sFirstName>' + firstname + '</sFirstName>';
	XMLstr += '<sLastName>' + lastname + '</sLastName>';
	XMLstr += '<sAddress>' + adress + '</sAddress>';
	XMLstr += '<sPostalAddress>'+postalcode + " " + city+ '</sPostalAddress>';
	XMLstr += '<sPhone>' + phone + '</sPhone>';
	XMLstr += '<sEMail>' + email + '</sEMail>';
	XMLstr += '<iType>' + about + '</iType>';
	var year = date.substr(6,10);
	var month = date.substr(3,2)
	var day = date.substr(0,2);
	date = (year + "-"+month+ "-"+day + " "+time);

	XMLstr += '<sDateTime>' + date + '</sDateTime>';
	XMLstr += '<sMailHeader></sMailHeader>';
	XMLstr += '</fromInternet>';
// 	alert(XMLstr)

	return XMLstr;
}

//temp
function buildMessage_mailto() {
	var XMLstr = "";
	var comments = $F('comments');
	var date = $F('date3');
	var time = $F('time3');
	var route = $F('route');
	var from = $F('from');
	var to = $F('to');
	var terminal = $F('terminal');
	var transport = $F('transport');

	var elements = document.getElementsByName("contact");
	var contact ="";

	for (i = 0; i < elements.length; i++){
        if (elements[i].checked == true) {
           contact = elements[i].value;
		}
    }

	if($('newform')) {
		var about = '';
		for (i = 0; i < $('fjordlineform').about.length; i++) {
			if($('fjordlineform').about[i].checked) about = $('fjordlineform').about[i].value;
		}
		var topic = '';
		for (i = 0; i < $('fjordlineform').topic.length; i++) {
			if($('fjordlineform').topic[i].checked) topic = $('fjordlineform').topic[i].value;
		}
	} else {
		var about = '7';
		var topic = 'Ikke valgt';
	}

	var about_literal = {'9':'Forslag/ønske','1':'Ros','2':'Spørsmål','22':'Reisekonto','10':'Synspunkt','7':'Klage','5':'Reisegaranti','21':'Annet'};

	var firstname = $F('firstname');
	var lastname = $F('lastname');
	var adress = $F('adress');
	var postalcode = $F('postalcode');
	var city = $F('city');
	var email = $F('email');
	var phone = $F('phone');

	XMLstr += '<b>Kontakt : </b>' + contact + "\n<br />";
	XMLstr += '<b>Fornavn : </b>' + firstname + "\n<br />";
	XMLstr += '<b>Etternavn : </b>' + lastname + "\n<br />";
	XMLstr += '<b>Adressse : </b>' + adress + "\n<br />";
	XMLstr += '<b>Postnr/sted : </b>'+postalcode + " " + city+ "\n<br />";
	XMLstr += '<b>Telefon : </b>' + phone + "\n<br />";
	XMLstr += '<b>Epost : </b>' + email + "\n<br />";
	XMLstr += '<b>Angåendeende : </b>' + about_literal[about] + "\n<br />";
	XMLstr += '<b>Område/tema : </b>' + topic + "\n<br />";
	XMLstr += '<b>Rutenr : </b>' + route + "\n<br />";
	XMLstr += '<b>Fra : </b>' + from + "\n<br />";
	XMLstr += '<b>Til : </b>' + to + "\n<br />";
	XMLstr += '<b>Transporttype : </b>' + transport + "\n<br />";
	XMLstr += '<b>Kommentarer : </b>' + comments + "\n<br />";
	var year = date.substr(6,10);
	var month = date.substr(3,2)
	var day = date.substr(0,2);
	date = (year + "-"+month+ "-"+day + " "+time);

	XMLstr += '<b>Tid : </b>' + date + "\n<br />";

	return XMLstr;
}


//sendXML(xml, resultElem, "followUp");
function sendXML(message, resultElemName, paramName, responseButton) {
	var opt = {
		method : 'post',
		postBody: paramName+'='+message + "&iType="+ itype,
		onSuccess: function (t){
			var elem = $(resultElemName);
			var res = t.responseText;
			if ($("contact").checked){
				res = "Din henvendelse er nå sendt. Saksnummeret ditt er "+res;
				res += "<br />Takk for at du kontaktet oss, hilsen Kolumbus.";
			}else {
				res = "Din henvendelse er nå sendt.";
				res += "<br />Takk for at du kontaktet oss, hilsen Kolumbus.";
			}
			if (res != "false"){
				elem.innerHTML = res;
				elem.style.background = OKColor;
				Effect.Fade(elem, { duration: 4, from: 1.0, to: 0.4});
			}else if ( res == "false"){
				elem.innerHTML = "Feil! Foresp&oslash;rselen ble ikke sendt";
				elem.style.background = errorColor;
				Effect.Fade(elem, { duration: 4, from: 1.0, to: 0.4});
				$(responseButton).disabled = false;
			}else {
				entityAlert(t.responseText);
			}
		},
		on404: function (t){
			entityAlert("Error 404 "+t.statusText);
			$(responseButton).disabled = false;
		},
		onFailure: function(t){
			entityAlert("Feil. Foresp&oslash;rselen ble ikke sendt");
			 $(responseButton).disabled = false;
		}
	}
		new Ajax.Request('soapDispatcher4.php', opt);
}

//temp
function sendXML_mailto(message, resultElemName, paramName, responseButton) {
	var email = $F('email');
	var firstname = $F('firstname');
	var lastname = $F('lastname');

	var opt = {
		method : 'post',
		postBody: 'Skjemaverdier'+'='+message + "&op=mail&email_to=boomerang@kolumbus.no&send_as_html=true&subject=Kontaktskjema kolumbus.no fra "+firstname+" "+lastname+"&email="+email+"&utf8=true&needBolResponse=true",
		onSuccess: function (t){
			var elem = $(resultElemName);
			var res = t.responseText;
			if ($("contact").checked){
				res = "Foresp&oslash;rsel sendt!";
			}else {
				res = "Foresp&oslash;rsel sendt!";
			}
			if (res != "false"){
				elem.innerHTML = res;
				elem.style.background = OKColor;
				Effect.Fade(elem, { duration: 2, from: 1.0, to: 0.4});
			}else if ( res == "false"){
				elem.innerHTML = "Feil! Foresp&oslash;rselen ble ikke sendt";
				elem.style.background = errorColor;
				Effect.Fade(elem, { duration: 2, from: 1.0, to: 0.4});
				$(responseButton).disabled = false;
			}else {
				entityAlert(t.responseText);
			}
		},
		on404: function (t){
			entityAlert("Error 404 "+t.statusText);
			$(responseButton).disabled = false;
		},
		onFailure: function(t){
			entityAlert("Feil. Foresp&oslash;rselen ble ikke sendt");
			 $(responseButton).disabled = false;
		}
	}
		new Ajax.Request('functions/redirect.php', opt);
}


function feilmld(feilmld) {
    entityAlert(feilmld.responseText);
}
function showfeedback(feedbackstr) {
    $("sendWSButton").disabled = false;
    $('feedbacktype').innerHTML = feedbackstr.responseText;
}

function showFeedbackResponse() {
     $("sendWSButton").disabled = false;
     if (request.readyState == 4) {
       if (request.status == 200) {
            $("feedbacktype").innerHTML = request.responseText;
       }else {
         entityAlert("status is " + request.status);
	}
     }
}

var require_datetime = false;
var require_topic = true;
var require_dob = false;
var require_cardno = false;

function check_about(el) {
	el.style.color = '#ffffff';
	el.style.backgroundColor = '#ffffff';
	var opts = document.getElementById('fjordlineform').about.length;

	document.getElementById('about_4_0').style.display='none';
	document.getElementById('about_4_1').style.display='none';
	document.getElementById('about_4_2').style.display='none';
	document.getElementById('col_card_no').value='xxxxxxx';

	$j('.topic').attr('disabled','');
	require_dob = false;
	require_cardno = false;

	if (el.value == '6' || el.value == '7') {
		require_datetime = true;
		require_topic = true;
		document.getElementById('date_required_img').style.display='';
		document.getElementById('time_required_img').style.display='';
		document.getElementById('topic_required').style.display='';
	} else if(el.value == '8') {
		require_datetime = false;
		require_topic = false;
		document.getElementById('date_required_img').style.display='none';
		document.getElementById('time_required_img').style.display='none';
		document.getElementById('topic_required').style.display='none';

	} else if(el.value == '22') {
		require_datetime = false;
		require_topic = true;
		require_dob = true;
		require_cardno = true;
		$j('#about_4_0').fadeIn(3000);
		$j('#about_4_1').fadeIn(3000);
		$j('#about_4_2').fadeIn(3000);
		$j('.topic').attr('disabled','disabled');
		$j('#topic_3').attr('disabled','').attr('checked','checked');
		$j('#topic_3').trigger('click');

	} else {
		require_datetime = false;
		require_topic = true;
		document.getElementById('date_required_img').style.display='none';
		document.getElementById('time_required_img').style.display='none';
		document.getElementById('topic_required').style.display='';
	}
	return true;
}

function validateForm(type){
	var validateText = "";
	var ok = true;
	var date = $('date3');
	var time = $('time3');
	var timevalue = time.value;
	var transport = $('transport');
	var firstname = $('firstname');
	var lastname = $('lastname');
	var email = $('email');
	var datevalue = date.value;
	var tempdate = datevalue.split(".");

	try {
		var Now = new Date();
		var day = date.value.substr(0,2);
		var month = date.value.substr(3,2);
		var year = date.value.substr(6,4);
		var Test = new Date(Now);
		Test.setDate(day);
		Test.setMonth(month-1);
		Test.setFullYear(year);
	}catch(e) {
		validateText = "Datoen er i feil format - rett format: dd.mm.&aring;&aring;&aring;&aring;.\n";
		ok = false;
	}

	if (date.value == ""){
		if(require_datetime) {
		validateText += "Du m&aring; fylle inn dato!\n";
		date.style.background = errorColor;
		ok = false;
		}
	}

	else if (date.value.length != 10 || isNaN(datevalue.substr(0,2) + datevalue.substr(3,2)+  datevalue.substr(6,4))|| datevalue.substr(2,1) != '.' || datevalue.substr(5,1) != '.'){
		validateText = "Datoen er i feil format - rett format: dd.mm.&aring;&aring;&aring;&aring;.\n";
		date.style.background = errorColor;
		ok = false;
	}else if (Test > Now){
		validateText += "Dato kan ikke v&aelig;re i fremtid!\n";
		date.style.background = errorColor;
		ok = false;

	}else{
	 	date.style.background = stdColor;
	}

	if(require_dob) {
		if( $j('#dob').val().match(/\d\d\.\d\d\.\d\d\d\d/) == null) {
			$j('#dob').css('background-color',errorColor);
			validateText += "F&oslash;dselsdatoen er i feil format - Rett format: dd.mm.&aring;&aring;&aring;&aring;.\n";
		}
	}
	if(require_cardno) {
		if( $j('#col_card_no').val().replace(/\s/,'').match(/\d{7,7}/) == null) {
			$j('#col_card_no').css('background-color',errorColor);
			validateText += "Kolumbuskortnummeret er i feil format. F&oslash;r opp siste 7 siffer i kortnummeret ditt.\n";
		}
	}

	if (time.value == ""){
		if( require_datetime ) {
		validateText += "Du m&aring; fylle inn tid!\n";
		time.style.background = errorColor;
		ok = false;
		}
	}
	else if (timevalue.length != 5 || isNaN(timevalue.substr(0,2) + timevalue.substr(3,2)) || timevalue.substr(2,1) != ':'){
		validateText = "Tiden er i feil format - rett format: tt:mm.\n";
		time.style.background = errorColor;
		ok = false;
	}
	else{
	 	time.style.background = stdColor;
	}
	if (type == "1"){
		if($('newform')) {
			var about = false;
			for (i = 0; i < $('fjordlineform').about.length; i++) {
				if($('fjordlineform').about[i].checked) about = true;
			}
			var topic = false;
			for (i = 0; i < $('fjordlineform').topic.length; i++) {
				if($('fjordlineform').topic[i].checked) topic = true;
			}

			if(!about) {
				validateText += "Du m&aring; fylle ut hva din henvendelse gjelder!\n";
				$('aboutresponse').style.background = errorColor;
				$('aboutresponse').style.color = '#ffffff';
				ok = false;
			} else {
				$('aboutresponse').style.background = stdColor;
				$('aboutresponse').style.color = '#000000';
			}
			if(!topic && require_topic) {
				validateText += "Du m&aring; fylle ut hvilket omr&aring;de/tema!\n";
				$('topicresponse').style.background = errorColor;
				$('topicresponse').style.color = '#ffffff';
				ok = false;
			} else {
				$('topicresponse').style.background = stdColor;
				$('topicresponse').style.color = '#000000';
			}
		}
		if (firstname.value == ""){
			validateText += "Du m&aring; fylle inn fornavn!\n";
			firstname.style.background = errorColor;
			ok = false;
		}
		else{
	 		firstname.style.background = stdColor;
		}
		if (lastname.value == ""){
		 	validateText += "Du m&aring; fylle inn etternavn!\n";
		 	lastname.style.background = errorColor;
			ok = false;
		}
		else{
	 		lastname.style.background = stdColor;
		}
		if (email.value == ""){
			validateText += "Du m&aring; fylle inn epostadresse!\n";
			email.style.background = errorColor2;
			ok = false;
		}
		else{
	 		email.style.background = stdColor;
		}
		if (!validateEmail("1")){
		 	validateText += "Du har enten skrevet inn en ugyldig epostadresse, eller de to epostadressene stemmer ikke overens!\n";
			ok = false;
		}
	}
	else{
	 	email.style.background = stdColor;
	 	firstname.style.background = stdColor;
	 	lastname.style.background = stdColor;
	}
	if (ok == false){
		entityAlert(validateText);
	}
	return ok;
}

function validateEmail(value){
 	var str=$('email').value;
 	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
 	if (filter.test(str) && $F('email') == $F('email1')) {
		$('email').style.background = stdColor;
		$('email1').style.background = stdColor;
		if (value = "1"){
			return true;
		}
    }
	else {
   		$('email').style.background = errorColor2;
   		$('email1').style.background = errorColor2;
   		if (value = "1") {
			return false;
		}

   	}
}

function setTimeDate(){
	var today = new Date();
	var month = today.getMonth() + 1;
	if (month < 10){
		month = "0" + month;
	}
	var day = today.getDate();
	if (day < 10){
		day = "0" + day;
	}
	var hours = today.getHours();
	if (hours < 10){
		hours = "0" + hours;
	}
	var minutes = today.getMinutes();
	if (minutes < 10){
		minutes = "0" + minutes;
	}
	var year = today.getFullYear();
	var s = ".";

	$('date2').value = day + s + month + s + year;
 	$('time2').value = hours + ":" + minutes;
}

function charcounter(){
	var	comment = $("comments").value;
	$("counter").innerHTML = comment.length;
}

/******** effects *********/
function showHideVehicles() {
    if ($("cbVehicles").checked == true) {
       effectShow('divVehicles');
    }
    else {
       effectHide("divVehicles");
    }
}

function checkOblig(value) {
	var elements = document.getElementsByName("check");
    for (i = 0; i < elements.length; i++){
     	if (value == '1'){
	  		effectShow(elements[i].id);
	 	}
	 	else{
	 		effectHide(elements[i].id);
		}
    }
    $('email').style.background = stdColor;
    $('email1').style.background = stdColor;
	$('firstname').style.background = stdColor;
	$('lastname').style.background = stdColor;

}

function showHideVehicleLength(action) {
var valg = action;

    if (valg == '1') {
       $("selAdults").style.display ='none';
       $("selChildren").style.display ='none';
       $("selectVehicleLength").style.display ='block';
       $("selectVehicleHeight").style.display ='block';
       effectShow('divVehicleSize');
    }
    else {
       effectHide("divVehicleSize");
       $("selectVehicleLength").style.display ='none';
       $("selectVehicleHeight").style.display ='none';
       $("selAdults").style.display ='block';
       $("selChildren").style.display ='block';

    }
}

function showHideRoundTrip() {
var elements = document.getElementsByName("rbRoundTrip");
    for (i = 0; i < elements.length; i++){
        if (elements[i].checked == true) {
            if (elements[i].value == '0'){
                effectFade('select2');
                $("selectTrip2").disabled= true;
                $("spnOutDate").onclick = null; // removing onclick
            }
        }
        else {
            effectAppear('select2');
            $("selectTrip2").disabled= false;
            $("spnOutDate").onclick = function(){displayCalendar(document.forms[0].tbOutDate,'dd.mm.yyyy',this);}; // adding onclick
        }
    }
}


function effectShow(div) {
    Effect.Appear(div, { duration: 0.5 });
}

function effectHide(div) {
    Effect.Fade(div, { duration: 0.5 });
}

function effectAppear(div) {

    Effect.Appear(div, { duration: 0.5, from: 0.3, to: 1.0});
}

function effectFade(div) {
    Effect.Fade(div, { duration: 0.5, from: 1.0, to: 0.3});
}

function disable(div) {
    Effect.Fade('products' + div, { duration: 0.5, from: 1.0, to: 0.3});
    var boxes = document.getElementsByClassName('box' + div);
    var boxes2 = document.getElementsByClassName('box2');
   	for (var i = 0; i < boxes.length; i++)
	{
	    Effect.Fade(boxes[i].id, { duration: 0.5, from: 1.0, to: 0.3 });
	    new Draggable(boxes2[i].id, {ghosting:true, revert:true})
	}
    Effect.Fade('select' + div, { duration: 0.5, from: 1.0, to: 0.3});
}

function enable(div) {
    Effect.Fade('products' + div, { duration: 0.5, from: 0.3, to: 1.0});
    var boxes = document.getElementsByClassName('box' + div);
   	for (var i = 0; i < boxes.length; i++)
	{
	    Effect.Appear(boxes[i].id, { duration: 0.5 });
	}
    Effect.Appear('select' + div, { duration: 0.5, from: 0.3, to: 1.0});
}

/* Cart */
function choose(id) {
	sendData(id);
}

function addProduct(element, dropon, event) {
	sendData(element.id);
}
function sendData (prod) {
	var url    = 'cart.php';
	var rand   = Math.random(9999);
	var pars   = 'product_id=' + prod + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}
function clearCart () {
	var url    = 'cart.php';
	var rand   = Math.random(9999);
	var pars   = 'clear=true&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );

}
function clearProduct (id) {
	var url    = 'cart.php';
	var rand   = Math.random(9999);
	var pars   = 'clearProduct=true&id=' + id + '&rand=' + rand;
	var myAjax = new Ajax.Request( url, {method: 'get', parameters: pars, onLoading: showLoad, onComplete: showResponse} );
}
function showResponse (originalRequest) {
	$('loading').style.display = "none";
	$('clearCart').style.display = "block";
	$('cart').innerHTML = originalRequest.responseText;
}
function showLoad () {
	$('clearCart').style.display = "none";
	$('loading').style.display = "block";
}

function entityAlert(msg){
	return alert($j('<textarea/>').html(msg).val()); //"Hack" to decode html-entities
}


