var mapcheck_form_html = '';
var highlighted_product = null;
var prod_family = 'G6';


var exeptionMapVersion = ['T-EU-Q115','T-EU-Q116','T-EU-Q015','T-EU-Q016'];

$(document).ready(function(){

    //Verify if map_filter is loaded, else utoload navigators
    try{
        if(map_filter){
            waitNavigators();
        }else{
            //Autoload
            autoloadNavigators();
        }
    }catch(e){
        //Autoload
        autoloadNavigators();
    }

});

function validateNavigator(){

	if($('#navcode').val()==''){
		//Enable code selection
		$('#verifyBtn').attr('disabled',true);
		$('#mapcode').attr('disabled',true);
	}else{
		//Disable code selection
		$('#verifyBtn').attr('disabled',false);
		$('#mapcode').attr('disabled',false);
	}

}

function checkMapStatus(){
    checkcode = {
        MapCode : $('#mapcode').attr('value') ,
        NavCode : $('#navcode').val()
        };

    send_data = JSON.stringify(checkcode);

    if( $('#navcode').val() == '')
        return;
    else
        $.post('ajax/shop/map_check.php',{
            data : send_data
        },checkedMapStatus,'json');
}

function checkedMapStatus(data){
    rstatus = data['UpdateStatus'];

    title = MapCheckerStatusTitle;
    body  = '';

    if(rstatus == 0 && data['exceptionfilter']!=1){
        //Updated
        body = MapCheckerUpdated;
        body+='<a href="" onclick="newSearch();return false;">'+MapCheckerNewSearch+'</a>';

        $('#checkmap_form').html(body);
    }else if(rstatus == -1){
        //Error
        //$('#mapcheck_messages').html(MapCheckerError);
        $('#mapcode').attr('value',MapCheckerError);
        $('#mapcode').addClass('mapcode_error');
        $('#mapcode').click(function(){
          if($(this).hasClass('mapcode_error')){
              $(this).removeClass('mapcode_error');
              $('#mapcode').attr('value','');
          }
              
        });
    }else{

        //Not updated
        body = MapCheckerNotUpdated;


        //set execption for map code
       
       /*  var execptionMap = false;

        	for(n in exeptionMapVersion){

                var rexp=new RegExp(exeptionMapVersion[n],'i' );
                
                if(data && origMapCode.match(rexp) &&  data['MapCode'].match(/T-EU-Q102./)){
                    execptionMap=true;
                    break;
                }
            }*/
        if(data['exceptionfilter']!=1)
            //If in maps page highlights that, else go to the map page
            body+='<a href="index.php?swt=0505&mid='+data['ProductId']+'&mc='+data['MapCode']+'&mnc='+data['NavId']+'&multifilter='+data['multiMaps']+'">'+ShowMeMyMap+'</a>';
        else{
            origMapCode = $('#mapcode').attr('value');
            origMapCode = origMapCode.replace(/-/g,'');
            origMapCode = origMapCode.replace(/\./g,'');

            var newMap = data['MapCode'].replace(/-/g,'');
            newMap = newMap.replace(/\./g,'');
            
            var mapCodeList = (origMapCode.toLowerCase() == newMap.toLowerCase())?'T-EU-Q102.02':data['MapCode']+';T-EU-Q102.02';
           body+='<a href="index.php?swt=0505&mid='+data['ProductId']+'&mc='+mapCodeList+'&mnc='+data['NavId']+'&exceptionfilter=1">'+ShowMeMyMap+'</a>';
        }

		/*/If map is also downloadable for selected navigator, show a link to the download setup
		if(parseInt(data['Downloadable']) == 1){
			origMapCode = $('#mapcode').attr('value');
			body+='<a href="index.php?swt=0505&dl=1&mc='+origMapCode+'&mnc='+data['NavId']+'">'+ShowMeDownload+'</a>';
		}
        */
        body+='<a href="" onclick="newSearch();return false;">'+MapCheckerNewSearch+'</a>';
        $('#checkmap_form').html(body);
    }
}

function highlightMap(pid){
    try{
        hl_class = 'product_highlighted';
        if(highlighted_product!=null){
            if($('#product_'+highlighted_product).hasClass(hl_class))
                $('#product_'+highlighted_product).removeClass(hl_class);
        }

        $.scrollTo($('#product_'+pid));
        $('#product_'+pid).addClass(hl_class);
        $('#product_'+pid).effect("pulsate", {}, 100);

        highlighted_product = pid;
    }catch(e){

    }

}

function newSearch(){
    $('#checkmap_form').fadeOut('slow',function(){
        $(this).html(mapcheck_form_html).fadeIn();
    });
}

function autoloadNavigators(){
    $.post('ajax/shop/maps.php?retrieve=navigators', {}, readNavigators, "json");
}


function waitNavigators(){

    if(nav_data == null)
        setTimeout(waitNavigators,500);
    else
        readNavigators(null);
}

function readNavigators(data){

    var navdata;
    if(data==null)
        navdata = nav_data;
    else
        navdata = data;

	for(n in navdata){
		nav = navdata[n];
        option = $('<option></option>').attr('value',nav['Id']+'::'+nav['MapType']).html(nav['Name']);
        $('#navcode').append(option);
    }

    //Store form HTML for replacement
    mapcheck_form_html = $('#checkmap_form').html();

}

function findNavigatorModel(data){

    title = FindModel;
    t_html = '<p>'+$('#findmodeltext').html()+'</p>';
    t_html+= '<input type="text" id="SearchProductCode"><button onclick="getNavigatorModel()"></button>';


    if(data){
        //Received data
        try{
            navname = data['Name'];
			navcode = data['Code'];
            id = data['Id'];
            image = data['Image'];
            cstatus = data['Status'];

            if(cstatus==true || cstatus=='true'){
                recv = '<p>'+FindModelYours+' <span>'+navname+'</span></p>';
                recv+= '<p><img src="'+image+'"></p><br>';
				recv+= '<p>'+navcode+'</p>';
                t_html += recv;               
            }else{
				recv = '<p>'+FindModelNotfound+'</p><br>';
				recv+= '<p>'+navcode+'</p>';
                t_html += recv;
            }

        }catch(e){
           
        }
        
    }

    showInfoDialog(title,t_html,'help');
}

function getNavigatorModel(){
    url = 'ajax/shop/products.php';
    $.post(url+'?retrieve=navbycode&pcode='+$('#SearchProductCode').attr('value'),{},findNavigatorModel,'json');
}

/**
 * Generic function
 */
function showModalArticle(article_id){
	var artCode = {code: article_id};

    $.post(
        'ajax/common/getArticle.php',
        {data: JSON.stringify(artCode)},
        function(data){
            showInfoDialog(data['Title'],data['Text'],'info');
        },
        'json'
    );
}


function findCodeInstructions(){

    artCode = {code: 'ShopFindMapCode'};

    $.post(
        'ajax/common/getArticle.php',
        {data: JSON.stringify(artCode)},
        function(data){
            showInfoDialog(data['Title'],data['Text'],'info');
        },
        'json'
    );

}


function findMapCodeInstructions(){
	showModalArticle('ShopFindMapCode_'+prod_family);

}

function findSDIDInstructions(){
	showModalArticle('ShopFindSdId_'+prod_family);
}


