﻿
var countrySelect = new String();

function ShowStoreFrontPart()
{
	if($(".drpCountry option:selected")[0])
	{
	countrySelect = $(".drpCountry option:selected")[0].value
	}	
	OpenOverlay('fade','languagePopup',1);
}
/**
 * @autor {sruiz}: Para corregir el bug, 3715.
 * @param {String}, layerID: Es la cortina semi transparente.
 * @param {String}, modalLayer: Es el ventana modal (o conjunto de objetos html) que paracerá sobre la cortina.  
 * @param {Integer}, typeModal: Define que ventana modal se utilizará, 1-StoreFront, 2-LoginPopup.
 * @modify:    
 */
function OpenOverlay(layerID, modalLayer, typeModal)
{	
	$('#'+layerID).css('display','block');
	$('#'+layerID).css('z-Index','1000');	
	$('#'+modalLayer).css('display','block');
	$('#'+modalLayer).css('z-Index','1001');
    var browser = navigator.appName
    var ver = navigator.appVersion
    var thestart = parseFloat(ver.indexOf("MSIE"))+1
    var brow_ver = parseFloat(ver.substring(thestart+4,thestart+7))    

    if(navigator.appName == "Microsoft Internet Explorer" && brow_ver <= 6)
    {
         CalenIfrem();
		var textHeight = (document.forms[0].offsetHeight/2)+window.screen.height+"px";		
		var textWidth = window.screen.width + "px";
        $(".overlay").css("height",textHeight);
        $(".overlay").css("width",textWidth);
        $(".overlay").css("position","absolute");
        $('#'+modalLayer).css('position','absolute');
        $('#'+modalLayer).css("floatStyle",'none');
		switch(typeModal)
		{
			case 1:
				listen('resize', window, repositionLanguagePopup);
				repositionLanguagePopup();
			break;
			case 2:				
				listen('resize', window, repositionModals);
				repositionModals();
			break;
		}        
	}
}

function repositionLanguagePopup(){
	var languagePopupA = document.getElementById('ChangeStoreFrontLinkPart1');
	var languagePopupDIV = document.getElementById('languagePopup');
	var langLinkPos = findPosition(languagePopupA);
	languagePopupDIV.style.left = (langLinkPos[0] - ((236 - languagePopupA.offsetWidth)/2)) + 'px';
	languagePopupDIV.style.top = (langLinkPos[1] + languagePopupA.offsetHeight) + 'px';
}

function findPosition(obj){
	var posX = obj.offsetLeft;var posY = obj.offsetTop;
	while(obj.offsetParent){
		if(obj==document.getElementsByTagName('body')[0]){break}
		else{
			posX=posX+obj.offsetParent.offsetLeft;
			posY=posY+obj.offsetParent.offsetTop;
			obj=obj.offsetParent;
		}
	}
	var posArray=[posX,posY]
	return posArray;
}
function HideFrontPartChange(){
document.getElementById('languagePopup').style.display='none';
document.getElementById('fade').style.display='none';
}

function HideFrontPart(){
    $(".drpCountry").selectOptions(countrySelect); 
    ChangeStoreFront();
    HideFrontPartChange();
    PassActivar();
}


var seCountry = new String();
var seLanguage = new String();
function Init()
{
    var protocol = document.location.protocol;
    var nohttp = new String();
	var currentAddress = new String();
	var values = new Array();
	currentAddress = document.location.href;
	if (protocol == "http:")
	{
	nohttp = currentAddress.replace("http://","");
	}
	else if (protocol == "https:")
	{
	    nohttp = currentAddress.replace("https://","");
	}
	values = nohttp.split("/");
	if(values[1].toLowerCase()  == "sites")
	{
		if(values[2].toLowerCase()  != "cc")
		{
			seCountry = values[2].toLowerCase();
		}
		seLanguage = values[3].toLowerCase();		
	}
	else if(values[1].toLowerCase()  =="search")
		{
			seLanguage = values[2].toLowerCase();
		}
}
function ConvertCode(code)
       {
         var x = new String();
         var arreglo = new Array();  
         try
         {
             x = code.replace("||",";");     
             x =  x.replace("||",";");
             arreglo = x.split(";");            
         }
         catch(e)
         {
            alert(e.message);
         }
         return arreglo;
       }
function ChangeStoreFront(){
 $(".drpCountry").change(function (){
         var str = new String();   
         var arr = new Array();
         var resul = new Array();
         var cultureCode = new String();
         $(".drpCountry option:selected").each(function (){
                              str += this.value;
                              arr = ConvertCode(str);
                              arr = removeArr(arr,0,1);
                              cultureCode = GetCultureCodeByCountry(arr); 
                              var a = $("#drpLanguages option").remove();
                          for(i= 0; i<=arr.length-2; i++)
                              {
                                 var resul = arr[i].split(":");
				 	
                                  $("#drpLanguages").addOption(resul[0],resul[1], (resul[0]== cultureCode));                              
                              }
             });
       }).change();
 
}
       
       function GetCultureCodeByCountry(selectedDropDownListCode)
       {
            var cultureCode = new String();
            try
            {               
                Init();
		var cultureToValid = seLanguage;
                var IsValid = ValidateLanguageInStoreFront(cultureToValid,selectedDropDownListCode);
                if(IsValid)
                {
                  cultureCode = cultureToValid;
                }
                else
                {
                  var cultureToValid = LeerCookie("CopaAirStoreFrontPreferences");
                  IsValid = ValidateLanguageInStoreFront(cultureToValid,selectedDropDownListCode);
                  if(IsValid)
                  {
                    cultureCode = cultureToValid;
                  }
                  else
                  {
                     cultureCode = GetDefaultLanguageInStoreFront(selectedDropDownListCode);
                  }
                }
            }
            catch(e)
            {
               alert(e.message);
            }
            return cultureCode;
       }
       
       function LeerCookie(nombre) {     
        var fields = new Array();
        var culture = new String();
        try
        {
          var a = document.cookie.substring(document.cookie.indexOf(nombre + '=') + nombre.length + 1,document.cookie.length);
          if(a!="")
          {
               if(a.indexOf(';') != -1)a = a.substring(0,a.indexOf(';'))
               fields =  a.split('&');
               for(i= 0; i<= fields.length -1; i++)
               {
                 var value = fields[i].split('=');
                 if(value[0].toString() == "preferredCultureCode")
                 {
                   var valuesculture  = value[1].toString().split("-");
	           culture = valuesculture[0].toString();
                 }
               }
           }
         }
         catch(e)
         {
           alert(e.message);
         }
         return culture; 
        } 
            
       function ValidateLanguageInStoreFront(cultureCode, cultureCodeList)
       {
         var IsValid = false;
         var codeLanguage = new Array();
         try
         {
           for(i= 0; i<=cultureCodeList.length-2; i++)
              {
                            var codeLanguage = cultureCodeList[i].toString().split(":");
                            if(codeLanguage[0].toString() == cultureCode.toString())
                            {
                              IsValid = true;
                              
                            }
              }
         }
         catch(e)
         {
           alert(e.message);
         }
         return IsValid;
       }  
       
       function removeArr(arr,from, to) {
         try
         {   
            var rest = arr.slice((to || from) + 1 || arr.length);
            arr.length = from < 0 ? arr.length + from : from;
            arr.pop();
            arr.push.apply(arr, rest);
         }
         catch(e)
         {
            alert(e.message);
         }   
         return arr;
       }
            
       function GetDefaultLanguageInStoreFront(cultureCodeList)
        {
           var cultureCode = new String();
           var cultures = new Array();
           var temp = new String();
           
           try
           {
               for(i= 0; i<=cultureCodeList.length-2; i++)
                {
                    var count = cultureCodeList[i].indexOf("1");
                    if(count > 0)
                    {
                      temp = cultureCodeList[i].toString();
                      cultures = temp.split(":");
                      cultureCode = cultures[0].toString();
                    }
                }
           }
           catch(e)
           {
               alert(e.message);
           }
           return cultureCode;
        }

        
        function ChangeStoreFrontButton_Click(){
         
         try
           {
               var arreglo = new Array();
               arreglo = ConvertCode($(".drpCountry option:selected")[0].value);
               var culture = $("#drpLanguages option:selected")[0].value;
               var rememberChk = $($(".chkRemenber")[0].firstChild)[0].checked;
               
               if(rememberChk)
               {  
                 SaveCookiePreferences(arreglo[0],arreglo[1].toLowerCase() ,culture.toLowerCase());
               }
               var IsChange = CheckContextChange();
               if(IsChange)
               {
                 RedirectPage();
				 document.getElementById('waiting').style.display='block';
               }
			   
               
           } 
           catch(e)
           {
               alert(e.message);
           }
        }
         function RedirectPage() {
         
         var values = new String();
         var arreglo = new Array();
         var languageSL = $("#drpLanguages option:selected")[0].value;
         var currentURLAddress = document.location.href;
         arreglo = ConvertCode($(".drpCountry option:selected")[0].value);
         currentURLAddress = currentURLAddress.replace(/&/g,"¿");
    	$.ajax({
  			type: "POST",
  			url: window.location.protocol+"//"+window.location.hostname+"/_layouts/ChangeStoreFrontRedirect.ashx", 
  			data: "currentURLAddress="+currentURLAddress+"&storeFrontCode="+arreglo[0]+"&countryCode="+arreglo[1]+"&cultureCode="+languageSL,
  			success: function(html){
  			 //alert(html);
  			 window.location = html.toString();
  			}
  		});
		}
		
        function SaveCookiePreferences(preferredStoreFrontCode,preferredCountryCode,preferredCultureCode){
            
         var largeExpDate = new Date ();
         largeExpDate.setTime(largeExpDate.getTime() + (365 * 24 * 3600 * 1000));        
          
         var values = new String();
                values = "preferredStoreFrontCode="+preferredStoreFrontCode+ "&preferredCountryCode=" +preferredCountryCode+ "&preferredCultureCode="+ preferredCultureCode+";expires="+largeExpDate; 
                document.cookie = "CopaAirStoreFrontPreferences=" + values + "; path=/" ;          
         
        }
        
        
        function CheckContextChange()
        {
          var IsDifferent= false;
          try
          {
              
              var values = new Array();
              var arreglo = new Array();
              arreglo = ConvertCode($(".drpCountry option:selected")[0].value);
              var languageSL = $("#drpLanguages option:selected")[0].value;
              values = languageSL.split("-");
              if(countrySelect != $(".drpCountry option:selected")[0].value || seLanguage != values[0].toString())
              {
                    IsDifferent = true;
              }
              
          }
          catch(e)
          {
             alert(e.message);
          }
          return IsDifferent;
        }


      
