/* General actions for the whole site

VERSION: 2008-09-24

*/

function catchErrors(e) {
	alert ("Honda (UK) - Error Found\n\n" + e);
	return true;
}


var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

function doLogging(loggingHREF) {			//this is called automatically by all pages that include this file and can be called manually for ajax loads
	
	if (!loggingHREF) loggingHREF = document.location;
	var loggingURL;
	loggingHREF=loggingHREF.toString().toLowerCase();
	
	if (loggingHREF.indexOf("http://")!=-1) {
		loggingURL = "/" +loggingHREF.split("/").slice(3).join("/");
	}
	else loggingURL = loggingHREF;

	permanentCookie("PRUEBATUHONDA");

	<!-- Analytics HOME PAGE -->
	try {
		var pageTracker = _gat._getTracker("UA-4273351-3");
		pageTracker._setDomainName(".honda.es");
		pageTracker._setAllowHash(false);
		pageTracker._trackPageview();
	} catch(err) {}
	<!-- Analytics HOME PAGE -->
}

//SESSION COOKIE CODE ************************************************************************************
	function getCookie(c_name)
	{
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1)
		{ 
		c_start=c_start + c_name.length+1; 
		c_end=document.cookie.indexOf(";",c_start);
		if (c_end==-1) c_end=document.cookie.length;
		return unescape(document.cookie.substring(c_start,c_end));
		} 
	  }
	return "";
	}
	function sessionCookie(c_name)
	{
		cookiestr=getCookie(c_name);
		if (cookiestr==null || cookiestr=="") {
			cookiestr = new Date().getTime()+Math.round(Math.random()*1000000);
			document.cookie=c_name+ "=" +escape(cookiestr);
			document.cookie.path = "/";
		}
		return cookiestr;	//cookie found
	}

	function permanentCookie(c_name)
	{
		cookiestr=getCookie(c_name);
		if (cookiestr==null || cookiestr=="") {
			cookiestr = new Date().getTime()+Math.round(Math.random()*1000000);
			expiryDate = new Date();
			expiryDate.setFullYear(expiryDate.getFullYear()+10);
			document.cookie=c_name+ "=" +escape(cookiestr) + "; max-age=" + (60*60*24*365*10) + "; expires=" + expiryDate.toGMTString() + ";  path=/";
		}
		return cookiestr;	//cookie found
	}
//SESSION COOKIE CODE ***********************************************************************************

function doFunctions() {
       var funcList      = new Array();
       var func          = new Array();
       var silent        = arguments[0];
       var argsStr       = silent;

       for (var i=1;i<arguments.length;i++) {
              var arg = arguments[i];
              argsStr += ",'" + arg + "'";
              if (arg == "exec") {
                   if (i!=1) funcList.push(func);
                   func = new Array();
              }
              else {
                   func.push(arg);
              }
       }
       funcList.push(func);

       if (!silent) alert("doFunctions(" + argsStr + ")");

       for (var i=0;i<funcList.length;i++) {
             var funcStr = funcList[i][0] + "(";
             if (funcList[i].length > 0) {
                   for (var j=1;j<funcList[i].length;j++) {
                         funcStr += "'" + funcList[i][j] + "',";
                   }
                   if (funcList[i].length>1) funcStr =
 		 		 		 		 		 funcStr.substr(0,funcStr.length-1);
                   funcStr += ");";
                   if (!silent) alert("trying:\n" + funcStr);
                   try {
                         eval(funcStr);
                   }
                   catch(exception) {
                         if (!silent) alert("failed:\n" + exception);
                   }
             }
       }
	}
	
	


//return querystring parameter
function queryString( name ) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( PSEUDOQUERYSTRING );
	if( results == null )    return "";  else    return results[1];
}
	
function URLDecode(psEncodeString) { var lsRegExp = /\+/g; return unescape(String(psEncodeString).replace(lsRegExp, " ")); }	
	
// TODO: add ajaxLoadAnimation class to common css.

function transform(type,template,service,params,callback) {

	var url = "/_assets/behaviour/transform.asp?type=" + type + "&template=" + escape(template) + "&service=" + escape(service) + "&params=" + escape(params);	
	$.get(url, callback);
}

/**
 * gets the value for a key stored in the global.asa file for the website
 */
function getSetting(key) {
	var value = "";
	$.ajax({"url": "/_assets/behaviour/getglobalvar.asp?var="+key, async: false, success: function(response) {
		value = response.toString();
	}});
	return value;
}

function ajaxLoader(wrapper,params) {
	$(wrapper).addClass("ajaxLoadAnimation");
	$(wrapper).empty();

	$.get(params,function(data){												
		$(data).appendTo(wrapper);
		$(wrapper).removeClass("ajaxLoadAnimation");
	});
}

// ajax loader with callback	
function ajaxLoaderWithCallBack(wrapper,params,callbackFunction) {
	$(wrapper).addClass("ajaxLoadAnimation");
	$.get(params,function(data){			
		$(wrapper).empty();							  
		$(data).appendTo(wrapper);
		$(wrapper).removeClass("ajaxLoadAnimation");
		callbackFunction;
	});
}

// gets the value of a parameter (strParam) from a href (strHref)
function getQSValue(strParam,strHref)
{
	  strParam = strParam.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+strParam+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( strHref );
	  if( results == null )
		return "";
	  else
		return results[1];
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

//INSERT JS FILE FOR TILING AND BG POSITION OF PNGs
if ($.browser.msie){ //only IE
	var ver = $.browser.version
	if ((ver >= 5.5) && (ver < 7)){ //only versions that don't support png transparency
		var script = document.createElement('script');
		script.src = '/_assets/presentation/iepngfix_tilebg.js';
		script.type = 'text/javascript';
		document.getElementsByTagName('head').item(0).appendChild(script);
	}		
}

// This is where you set your specific height & width etc... for your popups.
function openPopup(url) {
	window.open(url, 'hondaPopup', 'width=400,height=500,scrollbars,resizable');
	return false;
}

document.write('<link href="/_assets/presentation/javascript-only.css" rel="stylesheet" type="text/css" media="all" />');

$(document).ready(function(){
	//sophus tagging
	doLogging(window.location);	
});

function getHttpGetParameters(param, url) {
	var hrefArray;

	if ( (url != null) && (url != "") ) {
		// split the URL at the ? character
		hrefArray = url.split('?');
	} else {
		// split the URL at the ? character
		hrefArray = document.location.href.split('?');
	}

	// if the split produces only 1 array element then return an error
	if (hrefArray.length == 1)
	{
		return '';
	}

	// split the 2nd part of the array at the & character
	var parameterPairs = hrefArray[1].split('&');
	var parameterValues = '';

	// iterate over the pairings (param1=a,param2=b)
	for (var pair in parameterPairs)
	{
		// get the param and value into array
		var bits = parameterPairs[pair].split('=');

		// if the param equals our chosen param, then add it to the list
		if (bits[0] == param)
		{
			parameterValues += bits[1] + ',';
		}
	}  

	return parameterValues.substring(0, parameterValues.length-1).split(',');
}    

function getDateSuffix(date) {
	if ( (date == 1) || (date == 21) || (date == 31) ) {
		return "st";
	}
	if ( (date == 2) || (date == 22) ) {
		return "nd";		
	}
	if ( (date == 3) || (date == 23) ) {
		return "rd";
	}
	return "th";
}

function convertEscapedCharacters(value) {
	var pos = value.indexOf("%");
	while (pos != -1) {
		var hex = value.substring(pos+1, pos+3);
		if (!hex.match("\d*")) {
			pos = value.indexOf("%", pos+1);
			continue;
		}
		var character = String.fromCharCode(parseInt(hex,16))
		value = value.substring(0, pos) + character + value.substring(pos+3, value.length);
		pos = value.indexOf("%", pos+1);
	}

	return value.toString();
}

//RE ENABLE WHEN WE GET NEW CODE FOR TRACKING
//sophus tracking include
//document.write("<scr"+"ipt language='JavaScript' type='text/javascript' src='/_assets/behaviour/touchclarity/logging.js'></scr"+"ipt>");

function formatSSDIFDate(currentDate,isUTC) {
	var currentMonth;
	var currentDay;
	
	if(isUTC) {	
		if((currentDate.getUTCMonth()+1) < 10) {
			currentMonth = "0" + (currentDate.getUTCMonth()+1);
		} else {
			currentMonth = (currentDate.getUTCMonth()+1);
		}
		
		if(currentDate.getUTCDate() < 10) {
			currentDay= "0" + currentDate.getUTCDate();
		} else {
			currentDay = currentDate.getUTCDate();
		}
	
		return currentDate.getUTCFullYear() + "-" + currentMonth + "-" + currentDay;
	} else {
		if((currentDate.getMonth()+1) < 10) {
			currentMonth = "0" + (currentDate.getMonth()+1);
		} else {
			currentMonth = (currentDate.getMonth()+1);
		}
		
		if(currentDate.getDate() < 10) {
			currentDay= "0" + currentDate.getDate();
		} else {
			currentDay = currentDate.getDate();
		}
	
		return currentDate.getFullYear() + "-" + currentMonth + "-" + currentDay;
	}
	
}


function initDay(dayElement) {
	//$(dayElement).empty();
	for(x=1; x < 32; x++) {
		if(x < 10) {
			$(dayElement).append("<option value='0"+x+"'>"+x+"</option>");
		} else {
			$(dayElement).append("<option value='"+x+"'>"+x+"</option>");
		}		
	}
}

function initMonth(monthElement) {
	//$(monthElement).empty();
	for(x=1; x < 13; x++) {
		if(x < 10) {
			$(monthElement).append("<option value='0"+x+"'>"+x+"</option>");
		} else {
			$(monthElement).append("<option value='"+x+"'>"+x+"</option>");
		}		
	}
}

function initYear(yearElement,averageYear,minYear,maxYear) {
	var currentDate = new Date();
	var third = Math.round((maxYear-1)/3);
	$(yearElement).empty();
	if(maxYear >= 0) {		
		for(x=0+minYear; x < maxYear; x++) {
				if(averageYear && (x == third)) {
					$(yearElement).append("<option value='"+(currentDate.getFullYear()+x)+"'>"+(currentDate.getFullYear()+x)+"</option>");	
				} else {
					$(yearElement).append("<option value='"+(currentDate.getFullYear()+x)+"'>"+(currentDate.getFullYear()+x)+"</option>");	
				}
		}	
	} else {		
		for(x=0-minYear; x > maxYear; x--) {
				if(averageYear && (x == third)) {
					$(yearElement).append("<option value='"+(currentDate.getFullYear()+x)+"'>"+(currentDate.getFullYear()-x)+"</option>");	
				} else {
					$(yearElement).append("<option value='"+(currentDate.getFullYear()+x)+"'>"+(currentDate.getFullYear()-x)+"</option>");	
				}
		}
	}
	
	if(minYear < 0) {
		for(x = minYear; x > maxYear; x--) {
			$(yearElement).append("<option value='"+(currentDate.getFullYear()+x)+"'>"+(currentDate.getFullYear()+x)+"</option>");	
		}
	}
	
}

