////////////////////////////// XMLHttpRequest //////////////////////////////
////	Gets the xmlhttp object for Ajax functions.						////
////////////////////////////////////////////////////////////////////////////

var xmlHttp;
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) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }

    if ( xmlHttp == null ) {
        alert ("Browser does not support HTTP Request");
        return;
    } else {
        return xmlHttp;
    }
}

/*
xmlhttp = false; 
try{ 
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
} 
catch (e){ 
	try{ 
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
	} 
	catch (E){ 
		xmlhttp = false; 
	} 
} 
if (!xmlhttp && typeof XMLHttpRequest != 'undefined'){ 
	xmlhttp = new XMLHttpRequest(); 
}*/





////////////////////////////// document ready //////////////////////////////
////	jquery-functions thats calls when page finished loading.		////
////////////////////////////////////////////////////////////////////////////

$(document).ready(function() {
	
    // Standard helptip
    $(".help_tip").wTooltip({
        className: "toolTipStyle",
        follow: false,
        timeout: 500
    });
	
    // Large image helptip
    $(".large_img_preview").wTooltip({
        //content: "<img src='/images/products/"+$(".large_img_preview").attr("id")+".jpg' alt='' />",
        follow: false,
        offsetX: 50,
        offsetY: -80,
        delay: 750
    //ajax: "/my/location.php?query=fun"
    });

	// Colorbox carviewer popup
	//$(".carViewerPopup").colorbox({iframe:true, innerWidth:882, innerHeight:449});
        //$(".carViewerPopup").colorbox();
});





///////////////////////// getElementsByClassName ///////////////////////////
////	Function that lets you get an element by it's classname.		////
////////////////////////////////////////////////////////////////////////////

function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}



///////////////////////////////// hover ////////////////////////////////////
////	Hover function for product_result_list fields.					////
////////////////////////////////////////////////////////////////////////////

function hover(id){
    document.getElementById('product_list_info_'+id).className = 'product_list_info_hover';
    document.getElementById('product_list_addtobasket_'+id).className = 'product_list_addtobasket_hover';
    document.getElementById('product_list_image_'+id).className = 'product_list_image_hover';
}
function unhover(id){
    document.getElementById('product_list_info_'+id).className = 'product_list_info';
    document.getElementById('product_list_addtobasket_'+id).className = 'product_list_addtobasket';
    document.getElementById('product_list_image_'+id).className = 'product_list_image';
}

function basketBlink() {
    document.getElementById('basketSelect').className = 'basketListBlink';
    setTimeout("document.getElementById('basketSelect').className = 'basketList'",250);
    setTimeout("document.getElementById('basketSelect').className = 'basketListBlink'",500);
    setTimeout("document.getElementById('basketSelect').className = 'basketList'",750);
    setTimeout("document.getElementById('basketSelect').className = 'basketListBlink'",1000);
    setTimeout("document.getElementById('basketSelect').className = 'basketList'",1250);
}


/////////////////////////////// get_tire ///////////////////////////////////
////	Ajax function to get tire for rims in the complete wheel search.////
////////////////////////////////////////////////////////////////////////////

function get_tire(td){
    target_td = document.getElementById("tire_select_td_"+td);
    var serverPage = "scripts/ajax_get_tire.php?td="+td;
    xmlhttp = GetXmlHttp();
    xmlhttp.open("POST", serverPage);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            target_td.innerHTML = xmlhttp.responseText;
            document.getElementById("product_list_gettyre_btn_"+td).style.display = "none";
            document.getElementById("product_list_info_btn_"+td).style.display = "inline";
        }
    }
    xmlhttp.send(null);
}



/////////////////////////////// fromFlash //////////////////////////////////
////	Function that triggers from the flashmap. The swf sends the 	////
////	name of the selected lan.										////
////////////////////////////////////////////////////////////////////////////
function fromFlash(lan){
    switch (lan) {
        case 'dalarna':
            index = 0;
            outLan = "DALARNA";
            break;
        case 'halland':
            outLan = "HALLAND";
            break;
        case 'jamtland':
            outLan = "J%C4MTLAND";
            break;
        case 'medelpad':
            outLan = "MEDELPAD";
            break;
        case 'narke':
            outLan = "NÄRKE";
            break;
        case 'skane':
            outLan = "SKÅNE";
            break;
        case 'smaland':
            outLan = "SMÅLAND";
            break;
        case 'stockholm':
            outLan = "STOCKHOLM";
            break;
        case 'sodermanland':
            outLan = "SÖDERMANLAND";
            break;
        case 'uppland':
            outLan = "UPPLAND";
            break;
        case 'varmland':
            outLan = "VÄRMLAND";
            break;
        case 'vasterbotten':
            outLan = "VÄSTERBOTTEN";
            break
        case 'vaster_gotaland':
            outLan = "VÄSTRA+GÖTALAND";
            break;
        case 'ostergotaland':
            outLan = "ÖSTERGÖTLAND";
            break;
    }
	
    document.getElementById('areaSelect').value=outLan;
    getCities(2, outLan);
}


////////////////////////// switch_product_image ////////////////////////////
////	Function that switches the images on the productsheet.			////
////////////////////////////////////////////////////////////////////////////

function switch_product_image(image){
    document.getElementById("product_image").style.background = "no-repeat bottom right url("+image+")";
    document.getElementById("large_price").style.display = "none";
}



/////////////////////////////// select_tyre ////////////////////////////////
////	Function for the product-list for complete wheels. 				////
////	It colorize the selected tyres row.								////
////////////////////////////////////////////////////////////////////////////

function select_tyre(nr, td){
    var selected_tr = getElementsByClassName(document, "tr", "tyre_row");
    for (var i=0; i<selected_tr.length; i++){
        selected_tr[i].style.backgroundColor="#ffffff";
    }
    document.getElementById("tyre_row_"+nr).style.backgroundColor="#e9f0f4";
    document.getElementById("product_list_basket_btn_"+td).style.display = "inline";
}

/////////////////////////////// submitLargeSearch //////////////////////////
////	Function to submit car search from large_search.php				////
////	If no car is selected it links to selected search page.			////
////////////////////////////////////////////////////////////////////////////

function submitLargeSearch(pageId) {
    var carId = document.forms['carForm'].elements['carId'].options[document.forms['carForm'].elements['carId'].selectedIndex].value;
    var searchForm = document.forms['search'];
    var regNoActive = 0;
    if (document.forms['regNoForm'] != undefined) {
        var regNo = document.forms['regNoForm'].elements['regNo1'].value + '' + document.forms['regNoForm'].elements['regNo2'].value;
        if (regNo.length == 6 && regNo != 'ABC123') {
            regNoActive = 1;
            location.href='/scripts/getCarIdByRegNo.php?regNo=' + regNo + '&pageId=' + pageId;
        }
    }
	
    if (carId != '' && regNoActive == 0){
        searchForm.elements['carId'].value = carId;
        searchForm.elements['page'].value = pageId;
        searchForm.submit();
    } else if (regNoActive == 0){
        location.href='?page=' + pageId
    }
}

function openWin(url, width, height) {
    window.open (url, url, "location=no,status=yes,scrollbars=yes,width=" + width + ",height=" + height);
}

//////////////////////////// basket popup sign /////////////////////////
////	Show the basket sign on top of site when adding an item		////
////	to the shopping cart.										////
////////////////////////////////////////////////////////////////////////

function getElement(whichLayer) {
    var elem;
    if( document.getElementById ) // this is the way the standards work
        elem = document.getElementById( whichLayer );
    else if( document.all ) // this is the way old msie versions work
        elem = document.all[whichLayer];
    else if( document.layers ) // this is the way nn4 works
        elem = document.layers[whichLayer];
	
    return elem;
}

function showBasketSign() {
    document.getElementById("basketSign").style.display = 'block';
}

function hideBasketSign() {
    document.getElementById("basketSign").style.display = 'none';
}

function showQuantityErrorSign() {
    document.getElementById("quantityErrorSign").style.display = 'block';
}

function hideQuantityErrorSign() {
    document.getElementById("quantityErrorSign").style.display = 'none';
}

////////////////////////////// car Search //////////////////////////////
////	functions used when searching by regno or car				////
////////////////////////////////////////////////////////////////////////

function showSection(sectionId) {
    el = getElement(sectionId);
    if(el.style.display == 'block') {
        el.style.display = 'none';
    }
    else {
        el.style.display = 'block';
    }
}

function manualSearch(regSrchBox) {
    el = document.getElementById('reg-box2');
    if(el.style.display == 'block') {
        el.style.display = 'none';
        document.getElementById(regSrchBox).style.height = '45px';
    }
    else {
        el.style.display = 'block';
        document.getElementById(regSrchBox).style.height = '105px';

        if (regSrchBox == 'reg-search-start') {
            showStep2('manual');
        }
    }
}

function showStep2(inp) {
    if (inp == 'manual') {
        d = document.getElementById('search_box_2');
        d.style.display='block';
    }else if (inp.value.length==3) {
        d = document.getElementById('search_box_2');
        d.style.display='block';
    } else {
        return true;
    }
}

function submitCarSearch(pageId, carId, regNo, alertMsg) {
    if (pageId == 'folkdacket') {
        pageId = '80&campaign=folkdacket';
    } else if (pageId == 'suv_0810_kompl') {
        pageId = '121&campaign=' + pageId;
    } else if (pageId == 'sep_08_kompl') {
        pageId = '121&campaign=' + pageId;
    }
    if (regNo.length==6 && regNo != 'ABC123') {
        location.href='/scripts/getCarIdByRegNo.php?pageId=' + pageId + '&regNo=' + regNo;
    } else if (carId != '') {
        location.href='?page=' + pageId + '&carId=' + carId;
    } else {
        alert(alertMsg);
    }
}

function enterPressRegNo(pageId, carId, regNo, alertMsg, evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode == 13) {
        submitCarSearch(pageId, carId, regNo, alertMsg);
    }else {
        return true;
    }
}



function regSearch(){
    var regNo = document.forms['box_reg_search_form'].elements['regNo1'].value + '' + document.forms['box_reg_search_form'].elements['regNo2'].value;
    var pageId = document.forms['box_reg_search_form'].elements['toPage'].value;
    var referer = document.forms['box_reg_search_form'].elements['referer'] != undefined ? document.forms['box_reg_search_form'].elements['referer'].value : null;
    var additional = document.forms['box_reg_search_form'].elements['additional'] != undefined ? document.forms['box_reg_search_form'].elements['additional'].value : null;
    var michelinwinter = document.forms['box_reg_search_form'].elements['michelinwinter'] != undefined ? document.forms['box_reg_search_form'].elements['michelinwinter'].value : null;
    var showFamily = document.forms['box_reg_search_form'].elements['showFamily'] != undefined ? document.forms['box_reg_search_form'].elements['showFamily'].value : null;


    if (regNo.length == 6 && regNo != 'ABC123') {
        regNoActive = 1;
        location.href='/scripts/getCarIdByRegNo.php?regNo=' + regNo + '&pageId=' + pageId + '&referer=' + referer + (additional != null ? '&additional=' + additional : '')+ (michelinwinter != null ? '&michelinwinter=' + michelinwinter : '')+ (showFamily != null ? '&showFamily=' + showFamily : '');
    }
}

function enterPressRegSearch(event) {
    var charCode = (event.which) ? event.which : event.keyCode
    if (charCode == 13) {
        regSearch();
    }else {
        return true;
    }
}

function enterPressBargainBoxRegNo(event) {
    var charCode = (event.which) ? event.which : event.keyCode
    if (charCode == 13) {
        updateBargainBoxCarBox(document.getElementById('RegNoInput').value);
    } else {
        return true;
    }
}

function enterPressBargainBoxRegNo2(event) {
    var charCode = (event.which) ? event.which : event.keyCode
    if (charCode == 13) {
        updateBargainBoxCarBox(document.box_reg_search_form.new_box_reg1_inp.value + document.box_reg_search_form.new_box_reg2_inp.value);
    } else {
        return true;
    }
}

function updateManualCarSearchSelect(target, make, model, year){
    getString = "ajaxRequest="+target+"Options&make="+make;
    if(model != undefined){
        getString +=  "&model="+model;
    }
    if(year != undefined){
        getString +=  "&year="+year;
    }

    var serverPage = "scripts/getCarData.php?"+getString;
    xmlhttp = GetXmlHttp();
    xmlhttp.open("POST", serverPage);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.box_carchooser_form[target].options.length = 0;

            var optionsArray = xmlhttp.responseText.split("|||");

            counter = 0;
            for(i=0; i<optionsArray.length; i=i+2){
                document.box_carchooser_form[target].options[counter] = new Option(optionsArray[i+1], optionsArray[i]);
                counter++;
            }
        //document.box_carchooser_form[target].options[0] = new Option("Test", "Testar");

        //targetSelect.innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.send(null);
}



function changeTyreSurface(index){
    if(index == 1 || index == 2){
        document.getElementById("tyre_surface").value = index;
    } else {
        document.getElementById("tyre_surface").value = "";
    }
}



//////////////////////////// switch_display ////////////////////////////
////	Function thats switch between displaying the				 ///
////	recommended products and the toplist.						 ///
////////////////////////////////////////////////////////////////////////

function switch_display(show, hide){
    document.getElementById(show).style.display = "block";
    document.getElementById(hide).style.display = "none";
}

function ShowHideDiv(DivId) {
    var el = document.getElementById(DivId).style;
    if (el.display == 'none' || el.display == undefined) {
        el.display = 'block'
    } else {
        el.display = 'none';
    }
}

function updateBargainBoxCarBox(RegNo) {
    GetString = "ajaxRequest=GetCarDataByRegNo&RegNo=" + RegNo;
    var TargetDiv = document.getElementById("bargain_ajax_feedback");
    var TargetDiv2 = document.getElementById("bargain_ajax_feedback2");
    var serverPage = "scripts/getCarData.php?"+GetString;
    if (RegNo.length == 6) {
        xmlhttp = GetXmlHttp();
        xmlhttp.open("POST", serverPage);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                //document.getElementById("new_box_reg1_inp").disabled=false;
                //document.getElementById("new_box_reg2_inp").disabled=false;
                //document.getElementById("FetchButton").disabled=false;

                //document.getElementById("RegNoInput").style.backgroundColor = '#ffffff';
                var Response = xmlhttp.responseText.split("|||");
                var StatusCode = Response[0];
                var Result = Response[1];

                if (StatusCode == 0) {
                    var PC = document.box_reg_search_form.ProductCategory.value;
                    if (PC != 'All') {
                        Result = Result + "&ProductCategory=" + PC;
                    }
                    location.href = '' + Result + '';
                    TargetDiv.style.display = "none";
                } else {
                    TargetDiv.style.display = "none";
                    TargetDiv2.style.display = "block";
                    TargetDiv2.innerHTML = "<p>"+Result+"</p>";

                    document.getElementById('bargain_search_box2_inner').style.display = 'none';
                    document.getElementById('bargain_search_box2b_inner').style.display = 'block';

                    /* Save original height for divs */
                    bargain_search_box2b_inner_height = parseInt(document.getElementById('bargain_search_box2b_inner').offsetHeight) - 2;
                    bargain_search_box2_height = parseInt(document.getElementById('bargain_search_box2').offsetHeight);

                    document.getElementById('bargain_search_box2b_inner').style.height = bargain_search_box2b_inner_height + TargetDiv2.offsetHeight + "px";
                    document.getElementById('bargain_search_box2').style.height = bargain_search_box2_height + TargetDiv2.offsetHeight + "px";
                }

            } else {
                TargetDiv.style.display = "block";
                TargetDiv.innerHTML = "<img src='/graphic/ajaxloader.gif' />";
            //document.getElementById("new_box_reg1_inp").disabled=true;
            //document.getElementById("new_box_reg2_inp").disabled=true;
            //document.getElementById("FetchButton").disabled=true;
            }
        }
        xmlhttp.send(null);
    } else {
        document.getElementById("RegNoInput").style.backgroundColor = '#ffdddd';
        document.getElementById("RegNoInput").focus();
    }
}


function submitBargainsTyreSizeSearch() {
    frm = document.TyreSizeForm;
    TyreWidth = frm.TyreWidth.options[frm.TyreWidth.selectedIndex].value;
    TyreProfile = frm.TyreProfile.options[frm.TyreProfile.selectedIndex].value;
    WheelHeight = frm.WheelHeight.options[frm.WheelHeight.selectedIndex].value;
    ProductCategory = document.box_reg_search_form.ProductCategory.value;
    newUrl = '?page=134'
    + '&ProductCategory=' + ProductCategory
    + '&TyreWidth=' + TyreWidth
    + '&TyreProfile=' + TyreProfile
    + '&WheelHeight=' + WheelHeight;
    location.href=newUrl;
}



function switch_bargain_reg_advanced(){
    if(document.getElementById('bargain_search_box2c_inner').style.display == 'none'){
        document.getElementById('bargain_search_box2_inner').style.display = 'none';
        document.getElementById('bargain_search_box2b_inner').style.display = 'none';
        document.getElementById('bargain_search_box2c_inner').style.display = 'block';
        document.getElementById('bargain_reg_advanced_switch').innerHTML = document.getElementById('bargain_link_text_holder2').innerHTML;
		
        if(bargain_search_box2_height){
            document.getElementById('bargain_search_box2').style.height = bargain_search_box2_height + "px";
            document.getElementById('bargain_search_box2b_inner').style.height = bargain_search_box2b_inner_height + "px";
        }
    } else {
        document.getElementById('bargain_search_box2_inner').style.display = 'block';
        document.getElementById('bargain_search_box2c_inner').style.display = 'none';
        document.getElementById('bargain_reg_advanced_switch').innerHTML = document.getElementById('bargain_link_text_holder1').innerHTML;
    }
}



function switch_bargain_reg_manual(){
    if(document.getElementById('bargain_search_box2b_inner').style.display == 'none'){
        document.getElementById('bargain_search_box2_inner').style.display = 'none';
        document.getElementById('bargain_search_box2c_inner').style.display = 'none';
        document.getElementById('bargain_search_box2b_inner').style.display = 'block';

        if(bargain_search_box2_height){
            document.getElementById('bargain_search_box2').style.height = bargain_search_box2_height + "px";
            document.getElementById('bargain_search_box2b_inner').style.height = bargain_search_box2b_inner_height + "px";
            document.getElementById("bargain_ajax_feedback2").style.display = "none";
        }
    } else {
        document.getElementById('bargain_search_box2_inner').style.display = 'block';
        document.getElementById('bargain_search_box2b_inner').style.display = 'none';
		
        if(bargain_search_box2_height){
            document.getElementById('bargain_search_box2').style.height = bargain_search_box2_height + "px";
            document.getElementById('bargain_search_box2b_inner').style.height = bargain_search_box2b_inner_height + "px";
            document.getElementById("bargain_ajax_feedback2").style.display = "none";
        }
    }
}