// JavaScript Document
var current_slide = 0;
var content_array = [];
var button_next = 0;
var total_numof_slides = 0;
var data = {};
var bar_progression;
var wizard_type = 0; //0="hjälp mig" 1="kan själv"
var $j = jQuery.noConflict();
var guide_img = ['1-Valkommen.png','2-hur-bra-isolering.png', '3-Uvarde.png', 'antal-vaggar.png','4-vad-som-behovs.png', '5-offertforfragan.png', '6-aterforsaljare.png', '7-tack.png'];
var guide_img_simplew = ['1-Valkommen.png','antal-vaggar.png','4-vad-som-behovs.png', '5-offertforfragan.png', '6-aterforsaljare.png', '7-tack.png'];
function walk_trough(slide_index){
	//$j(".welcome_slide").hide();
	//alert("slide_index="+slide_index+" current_slide="+current_slide + " total_numof_slides=" + total_numof_slides);
	$j("#wizard_logo").attr({src:"/sgc_wizard/images/guide/"+guide_img[slide_index]});
    current_slide = slide_index;
    
    $j(".slide").hide();
    $j(".slide:eq(" + slide_index + ")").fadeIn('slow');
    
    var progressbar_value = $j(".progressbar").progressbar("option", "value");
    if (current_slide != 0) {
		$j(".slide_counter").text('Steg ' + current_slide + ' av ' + total_numof_slides);
		$j(".progressbar").progressbar({value: bar_progression});
        progressbar_value = bar_progression * current_slide;
        $j(".progressbar").progressbar("option", "value", progressbar_value);
    }
}

function walk_trough_simplew(slide_index){
	$j(".welcome_slide").hide();
	img_ind = slide_index+1;
	//alert(img_ind);
	$j("#wizard_logo").attr({src:"/sgc_wizard/images/guide/"+guide_img_simplew[img_ind]});
    current_slide = slide_index;
	step = parseFloat(current_slide)+1;
	//alert("slide_index="+slide_index+" current_slide="+current_slide+" step="+step);
    $j(".slide").hide();
    $j(".simplew:eq(" + slide_index + ")").fadeIn('slow');
    $j(".slide_counter").text('Steg ' + step + ' av ' + total_numof_slides);
    
    var progressbar_value = $j(".progressbar").progressbar("option", "value");
    //if (current_slide != 0) {
        progressbar_value = bar_progression * step;
        //alert("bar_progression="+bar_progression+" step="+step+" progressbar_value="+progressbar_value);
        $j(".progressbar").progressbar("option", "value", progressbar_value);
    //}
}

function send_mail(){
    var fields = $j("input[name='list']").serializeArray();
    
    if (fields.length <= 0) {
        alert('Du måste välja åtminstone en återförsäljare');
        return false;
    }
    data.retailers = $j('.retailer').serializeArray();
    data.name = $j("#name").val();
    data.address = $j("#address").val();
    data.postcode = $j("#postcode").val();
    data.city = $j("#city").val();
    data.tlf = $j("#tlf").val();
    data.email = $j("#email").val();
    
    data.isolering = $j("#isolering_qlt").slider("option", "value");
    //data.excavationDepth = $j("#ExcavationDepth").val();
    data.totalWalls = $j("#total_walls option:selected").val();
    wallsx = new Array();
    for (i = 0; i < data.totalWalls; i++) {
        var flength = $j(".length:eq(" + i + ")",'#walls_simplew').val();
        var fheight = $j(".height_1:eq(" + i + ")",'#walls_simplew').val();
        var sheight = $j(".height_2:eq(" + i + ")",'#walls_simplew').val();
        var fus = $j(".us:eq(" + i + ")",'#walls_simplew').val();
        wallsx[i] = {
            "alength": flength,
            "aheight": fheight,
            "bheight": sheight,
            "us": fus
        };
    }
    
    data.walls = wallsx;
    //$j(".calc_results").load("sgc_wizard/actions.php?a=test_pdf", {
      //  datax: data
    //});
    updateDOMinnerHTML(document);
    wallInfo = $j("#wall_info").html();
    theWalls = $j("#walls_simplew").html();
    calcResults = $j(".calc_results").html();
    wallInfo = removeImgTags(wallInfo);
    theWalls = removeImgTags(theWalls);
    results = wallInfo + theWalls + calcResults;
    results = encodeURIComponent(results);
    $j.post('/sgc_wizard/sendmail.php', {
        datax: data,
        result: results
    }, function(info){
		if(info){
			alert(info);
		}
		if(wizard_type==1){
			 walk_trough_simplew(current_slide + 1);
		}else{
			 walk_trough(current_slide + 1);
		}
       
    });
    
}


//calculate material
function send(){
	
    //data.isolering = $j("#isolering_qlt").slider("option", "value");
	$j.ajax({
		url: "/search_functions/wait.php",
		async: false,
		success: function(data){
			$j(".calc_results").html(data);
		}
	});
	data.padding = 0;
	if($j('#padding').is(':checked')){
		data.padding = 1;
	}
	data.totalWalls = $j("#total_walls_simplew option:selected").val();
	//if(wizard_type==1){
		data.isolering = $j('#thickness_simplew option:selected').val();
		if($j('#padding_simplew').is(':checked')){data.padding = 1;}
	//}
	
	    
    wallsx = new Array();
    maxheight = 0;
    for (i = 0; i < data.totalWalls; i++) {
		//if (wizard_type == 1) {
			var flength = $j(".length:eq(" + i + ")",'#walls_simplew').val();
			var fheight = $j(".height_1:eq(" + i + ")",'#walls_simplew').val();
			var sheight = $j(".height_2:eq(" + i + ")",'#walls_simplew').val();
			maxheight = Math.max(sheight, maxheight);
			maxheight = Math.max(fheight, maxheight);
			var fus = $j(".us:eq(" + i + ")",'#walls_simplew').val();
		//}else{
		//	var flength = $j(".length:eq(" + i + ")").val();
		//	var fheight = $j(".height_1:eq(" + i + ")").val();
		//	var sheight = $j(".height_2:eq(" + i + ")").val();
		//	var fus = $j(".us:eq(" + i + ")").val();			
		//}
        wallsx[i] = {
            "alength": flength,//wall lenght
            "aheight": fheight,//wall height1
            "bheight": sheight,//wall height2
            "us": fus
        };
    }
    if (maxheight > 6){
    	return "Mängdverktyget kan ej användas till grunder som är djupare än 6 meter. Var vänlig kontakta vår tekniska support istället.";
    }
    
    data.walls = wallsx;
    $j(".calc_results").load("/sgc_wizard/calculate.php?a=testdata", {
        datax: data
    });
    return "";
}

function print_walls(){
	//if (wizard_type == 1) {
		data.totalWalls = $j("#total_walls_simplew option:selected").val();
	//}else{
	//	data.totalWalls = $j("#total_walls option:selected").val();
	//}
	//alert("wizard_type="+wizard_type+" data.totalWalls"+data.totalWalls);
	$j(".walls").load("/sgc_wizard/actions.php?a=printwalls&total_walls=" + data.totalWalls);
}


function calculate_uvalue(){
    var u_array = new Array();
    data.fMaterial = $j("#f_material").val();
    data.wallUnder = $j("#wall_under").val();
    
    
    data.mtrli = {
        "material": $j("#mtrl_i").val(),
        "thickness": $j("#thickness_i").val()
    };
    data.mtrlk = {
        "material": $j("#mtrl_k").val(),
        "thickness": $j("#thickness_k").val()
    };
    data.mtrlu = {
        "material": $j("#mtrl_u").val(),
        "thickness": $j("#thickness_u").val()
    };
    //alert($j("#thickness_i").val());
    $j(".uvalue_result").load("/sgc_wizard/uvarde.php", {
        datax: data
    });
}

jQuery.download = function(url, data, method){
    //url and data options required
    if (url && data) {
        //data can be string of parameters or array/object
        data = typeof data == 'string' ? data : jQuery.param(data);
        //split params into form inputs
        var inputs = '';
        jQuery.each(data.split('&'), function(){
            var pair = this.split('=');
            inputs += '<input type="hidden" name="' + pair[0] + '" value="' + pair[1] + '" />';
        });
        //send request
        jQuery('<form action="' + url + '" method="' + (method || 'post') + '">' + inputs + '</form>').appendTo('body').submit().remove();
    };
    };


function show_sgcwizard(){
  //alert('may!!!');
	$j("#dialog").dialog('close');
	$j("#dialog").remove();
	$j('<div id="dialog"></div>').appendTo($j("body"));
	$j('#dialog').load('/sgc_wizard/wizard.php', function(data){
	$j('.button_reload','.button_set').click(function(){
		
	current_slide = 0;
	content_array = [];
	button_next = 0;
	total_numof_slides = 0;
	data = {};
	bar_progression;
	wizard_type = 0; //0= 

	show_sgcwizard();
	});
	//	alert(data);
    // validate signup form on keyup and submit
	//$j(".slide").hide();
    $j("#wizard_form").validate({
        rules: {
            name: "required",
            address: "required",
            postcode: {
                required: true,
                minlength: 5,
                maxlength: 5
            },
            email: {
                required: true,
                email: true
            },
            city: {
                required: true,
                minlength: 1
            }
        },
        messages: {
            name: "*",
            address: "*",
            email: {
                required: "*",
                email: "*"
            },
            city: {
                required: "*",
                minlenght: "*"
            },
            postcode: {
                required: "*",
                minlength: "*"
            }
        }
    });
    
    
    
    total_numof_slides = $j("div.slide").length - 1;
	
    bar_progression = 100 / (total_numof_slides);
   
	$j("#total_walls_simplew").change(function(){print_walls();});
	$j(document).ready(function(){
		$j("#total_walls_simplew").change();
		$j('#thickness_u').change(function(){
			thickness = $j('#thickness_u').val();
			index = 0;
			switch (thickness) {
			case "200":
				index = 2;
				break;
			case "165":
				index = 1;
				break;
			case "100":
				index = 0;
				break;
			}
			$j('#thickness_simplew').val(index);
		});
	});
	
	select = $j('#thickness_u');
    $j("#isolering_qlt").slider({min: 0,max: 2,slide: function(event, ui) {
				select[0].selectedIndex = ui.value;
				$j('#thickness_simplew').val(ui.value);
			}
});
    
    
    walk_trough(0);
	$j("input[type='button']",".button_set").button() ;
    $j("#total_walls_simplew").change();
    $j(".button_getretailer", ".button_set").click(function(){
        get_retailers();
    });
    $j(".button_next", ".button_set").click(function(){
        walk_trough(current_slide + 1);
    });
 	$j(".button_wizard", ".button_set").click(function(){
 		prepare_wizard();
    });
	$j(".button_simplew", ".button_set").click(function(){
        //walk_trough(current_slide + 1);
		
		simplew();//USE SImPLE WIZARD
    });
    $j(".button_prev", ".button_set").click(function(){
        walk_trough(current_slide - 1);
    });
    $j(".button_skip", ".button_set").click(function(){
        walk_trough(current_slide + 2);
    });
    $j(".button_uvalue", ".button_set").click(function(){
        calculate_uvalue()
    });
    $j(".button_sgc", ".button_set").click(function(){
    	$j("#wall_calc_messages").text("");
    	error_message = send();
    	if (error_message == ""){
    		if(wizard_type == 0)
    			walk_trough(current_slide + 1);
    		else if (wizard_type == 1)
    			walk_trough_simplew(current_slide + 1);
    	} else {
    		$j("#wall_calc_messages").text(error_message);
    	}
    });
    $j(".button_sendmail", ".button_set").click(function(){
        send_mail();
    });
    $j(".button_close").click(function() {
    	$j("a.ui-dialog-titlebar-close").click();
    });
    $j(".print").click(function() {
    	identifierToPrint = $j(this).attr("print");
    	objToPrint = $j(identifierToPrint);
    	objToPrint.jqprint({
            debug: false,
            importCSS: true, 
            printContainer: false,
            operaSupport: true
        });
    });
    
    
	
	 $j("#postcode").keyup(function(){
	 	//alert($j(this).val());
         	$j('#xxx').load('/sgc_wizard/actions.php?a=getCity&postcode=' + $j(this).val(), function(data){
		 //	alert(data);
            $j('#city').val(jQuery.trim(data));
            
              });
                
            });
		
	}).dialog({
		autoOpen: false, 
		height:550, 
		width: 700, 
		title: 'Materialberäknare'
			});
	
	$j("#dialog").dialog('open');
	
	}
function prepare_wizard() {
	$j("#total_walls_simplew").change(function(){print_walls();});
	//$j('.simplew_walls').remove();
	total_numof_slides = $j("div.slide").length - 1;
	bar_progression = 100 / (total_numof_slides);
	walk_trough(current_slide);	
}
	
function simplew(){
	$j("#total_walls_simplew").change(function(){print_walls();})
	$j("#total_walls_simplew").change();
	current_slide  = 0,
	wizard_type = 1;
    total_numof_slides = $j("div.slide").length - 3;
	walk_trough_simplew(0);
	    $j(".button_prev", ".button_set").click(function(){
        walk_trough_simplew(current_slide +1- 1);
    });
	    $j(".button_next", ".button_set").click(function(){
        walk_trough_simplew(current_slide);
    });
    bar_progression = 100 / (total_numof_slides);	
	$j(".progressbar").progressbar({
        value: bar_progression
    });
}	
	
	
function get_retailers(){
    if (!$j("#wizard_form").valid()) {
        return false;
    } else {
    	$j.ajax({
    		url: "/search_functions/wait.php",
    		async: false,
    		success: function(data){
    			$j(".results_retailer").html(data);
    		}
    	});
		if(wizard_type==1) {
			walk_trough_simplew(current_slide + 1);
		} else {
			walk_trough(current_slide + 1);
		}
    }
    var post_code = $j('#postcode').val();
    if ($j('#postcode2').val() != '') {
        post_code = $j('#postcode2').val();
    }
    $j(".results_retailer").load("/sgc_wizard/get_retailers.php", {
        postcode: post_code
    });
}	
	
function get_help(o){
	switch(o){
		case 1:
			$j('#help').load('/sgc_wizard/help/uvarde.php').dialog({modal:true,title:'Vad är U-värdet?'});
		break;
		case 2:
			$j('#help').text('Här väljer du det återfyllnadsmaterial som bäst passar det du återfyller med på utsidan.').dialog({modal:true,title:'Återfyllnadsmaterial',width:250});
		break;
		case 3:
			$j('#help').text('Hur mycket av källarväggen är belägen under mark?').dialog({modal:true,title:'Vägg under mark',width:250});
		break;
		case 4:
			$j('#help').text('Här anger du vad för slags material som sitter på insidan av Er källarvägg.').dialog({modal:true,title:'Material insidan av vägg',width:250});
		break;
		case 5:
			$j('#help').text('Vad för material är din källarvägg uppbyggd av?').dialog({modal:true,title:'Material källarvägg',width:250});
		break;
		case 6:
			$j('#help').text('Här anger du ISODRÄN och dess tjocklek. Vi har redan skrivit in det värde som du valde vid tidigare steg. Du kan justera denna tjocklek för att se hur ditt U-värde ändras.').dialog({modal:true,title:'Material utsidan källarvägg',width:250});
		break;
		case 7:
			$j('#help').text('Här skriver du in längden på väggen dvs. från ett hörn till det andra hörnet.').dialog({modal:true,title:'Längd',width:250});
		break;
		case 8:
			$j('#help').load('/sgc_wizard/help/height1.php').dialog({modal:true,title:'Höjd 1', width:650});
		break;
		case 9:
			$j('#help').text('Höjd 2 innebär den delen som är från marknivå till underkant sula (Se hjälp för höjd 1). Dock kan det vara så att huset är ett soutteräng-hus vilket då innebär att du har en höjd vid första hörnet av en vägg och en höjd, som skiljer sig från det första hörnet, vid andra hörnet. Du skriver alltså in i rutan "Höjd 2" om marknivån lutar. Är marken helt jämn behövs inget tal i höjd 2.').dialog({modal:true,title:'Höjd 2',width:250});
		break;
		case 10:
			$j('#help').load('/sgc_wizard/help/usula.php').dialog({modal:true,title:'Utsickande sula', width:650});
		break;
		case 11:
			$j('#help').text('Om marken skall packas vid återfyllning med en padda eller liknande så krävs en hårdare ISODRÄN-skiva. Skall du bara återfylla marken utan mekanisk packning låter du denna ruta vara tom.').dialog({modal:true,title:'Skall marken packas?', width:250});
		break;
		}
	
}

function fixcommas(that) {
that.value = that.value.replace(/,/g,".");
}

function placeOverFlash(){
	alert("objects found: " + $j("object").length);
	$j("<param name=\"wmode\" value=\"opaque\">").prependTo("object");
}

function removeImgTags(html) {
	return html.replace(/\<img.*?\>/g, "");
}

function updateDOMinnerHTML(doc) {
	try {
		var l_i=doc.getElementsByTagName('input');
		var l_s=doc.getElementsByTagName('select');
		var l_t=doc.getElementsByTagName('textarea');
		var l_field_sets=Array(l_i,l_s,l_t);
		var l_set, l_input, l_count=0, l_sel;
		for(var x=0;x<l_field_sets.length;x++) {
			l_set=l_field_sets[x];
			for(var y=0;y<l_set.length;y++) {
				l_input=l_set[y];
				++l_count;
				if (l_input.type=="select-one") {
					l_sel=l_input.selectedIndex;
					for (var i=0; i<l_input.options.length; i++) { // remove all selected
						l_input.options[i].removeAttribute("selected");
						l_input.options[i].selected=false;
					}
					l_input.options[l_sel].setAttribute("selected","selected");
					l_input.options[l_sel].selected=true;
					//alert(l_input.options[l_sel].value+' '+l_input.options[l_sel].text);
				} else if (l_input.type=="text") l_input.setAttribute("value",l_input.value);
				else if (l_input.type=="textarea" || l_input.type=="hidden") l_input.setAttribute("value",l_input.value);
				else if (l_input.type=="checkbox" || l_input.type=="radio") {
					if (l_input.checked) l_input.setAttribute("checked","checked");
					else l_input.removeAttribute("checked");
				} else {
					//alert('updateDOMinnerHTML cannot update field type '+l_input.type);
				}
			}
		}
	} catch(e) { 
		//alert(e); 
	}
} 
