//+++++++++++++++++++++++++++ 
// onload events
//+++++++++++++++++++++++++++ 

/**
 ************************
 * LP UPDATE :: START (Original NOT firing!! therefore replace with jQuery initiation)
 ************************
 */
	/*	
	window.addEvent('load', function(){
		alert("window :: event :: load");
		if (typeof updateAnchors != "undefined") updateAnchors();
		if (typeof setLogLinks != "undefined") setLogLinks();
		if(window.ie6) {fixPNGs();}
	});
	*/

		$(document).ready(function() 
		{
			if (typeof updateAnchors != "undefined") updateAnchors();
			if (typeof setLogLinks != "undefined") setLogLinks();
			
			if($.browser.msie && $.browser.version == 6 ) 
			{
				fixPNGs();
			}
		});

/**
 ************************
 * LP UPDATE :: END	
 ************************
 */
 

//+++++++++++++++++++++++++++ 
// fixes IE6 png transparency
//+++++++++++++++++++++++++++ 

function fixPNGs() {
	//log.debug("Fixing PNGs");
    var pngs = getElementsByClass('fixPNG');
    for (var i = 0; i < pngs.length; i++) {
       //log.debug("png element name: " + pngs[i].nodeName);
       fixPNG(pngs[i]);
    } 
    //log.debug("Finished Fixing PNGs");
}

function fixPNG(imageObj) {

if (imageObj.nodeName=="IMG" || imageObj.nodeName=="INPUT") {
    var pngURL = imageObj.src;
	 imageObj.runtimeStyle.backgroundImage = "none",
    imageObj.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + pngURL + "', sizingMethod='image')";
    
    /**
	 ************************
	 * LP UPDATE :: START localising blank.gif)
	 ************************
	 */
		imageObj.src = "assets/images/_blank.gif";
		//OLD : imageObj.src = "/library/images/blank.gif";
	/**
	 ************************
	 * LP UPDATE :: END
	 ************************
	 */
	
	imageObj.style.visibility="visible";	
} 
else {
    var pngURL = returnBgImage(imageObj.currentStyle.backgroundImage);
    if (pngURL != 'ne')
    {
		 imageObj.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + pngURL + "',sizingMethod='scale')";
		 imageObj.style.backgroundImage="none";
		 imageObj.style.visibility="visible";
	 }    
  }
}

function returnBgImage(obj) {
    return obj.substring(5, obj.length - 2);
}

//+++++++++++++++++++++++++
// skin buttons dynamically
//+++++++++++++++++++++++++

// skinButtons() function - calls skinButton function for each element with class of 'skinButton' 

function skinButtons() {
    var buttons = getElementsByClass('skinButton');
    for (var i = 0; i < buttons.length; i++) {
       skinButton(buttons[i]);
    }  
    
     var staticInputs = getElementsByClass('button');
        for (var i = 0; i < staticInputs.length; i++) {
        try {
        staticInputs[i].getElementsByTagName('input')[0].onmouseover=hoverOver;
        staticInputs[i].getElementsByTagName('input')[0].onmouseout=hoverOut
        }
        catch (e) {}
    }  
}

// skinButton() function - skins each button	

function skinButton(butt) {

// default inputs for safari

if(butt.nodeName=="INPUT" && window.khtml) {
    return;
}

else {

// if already skinned ignore

if (butt.parentNode.id != "skinnedButton") {

//skin everything else

    var fragment= document.createDocumentFragment();
    var btnWrapper = document.createElement("div");
    btnWrapper.className="button";
    var btnBody = document.createElement("div");
    btnBody.className="body fixPNG";
    btnBody.id="skinnedButton";
       
    // append cloned element to container
    var btnTrigger = butt.cloneNode(true);
    btnBody.appendChild(btnTrigger);

    // input rollovers

    if(butt.nodeName=="INPUT") {
       btnTrigger.onmouseover = hoverOver;
	   btnTrigger.onmouseout = hoverOut;
    }
  
    // left and right edges
    var btnRightEdge = document.createElement("div");
    btnRightEdge.className="rightEdge fixPNG";
    var btnLeftEdge = document.createElement("div");
    btnLeftEdge.className="leftEdge fixPNG";
    btnWrapper.appendChild(btnLeftEdge);
    btnWrapper.appendChild(btnBody);
    btnWrapper.appendChild(btnRightEdge);
    
    // add button to fragment
    fragment.appendChild(btnWrapper)
    
    // replace fragment with original
    butt.parentNode.replaceChild(fragment, butt);

    }
 }
}

function hoverOver() {
    this.style.color ="#fff";
}

function hoverOut() {
    this.style.color ="#ccc";
}

//+++++++++++++++++++++++++
// functions called by AJAX
//+++++++++++++++++++++++++


function pageLoad() {
	var prm = Sys.WebForms.PageRequestManager.getInstance();
	if (!prm.get_isInAsyncPostBack()) {
		prm.add_endRequest(onEndRequest);
	}
}

function pageUnload() {
	Sys.WebForms.PageRequestManager.getInstance()
		.remove_endRequest(onEndRequest);
}

function onEndRequest(sender, args) {
  sIFRReplace();
  skinButtons();
  if($$('div.comparison') != ''){
    addCompareEvents();
  }
}


 //++++++++++++++++++++++++++
// get elements by class name
//+++++++++++++++++++++++++++

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

 //+++++++++++++++++++++++++
// configure modal popup box
//++++++++++++++++++++++++++
function configureErrMsgPopup(sBoxSize){
    var ePopupBoxContainer = document.getElementById('errMsgPopupContainer');
    var ePopupBoxBackground = document.getElementById('errMsgPopupBackground');
    var ePopupBox = document.getElementById('errMsgPopup');
    var sTargetSize;
    var nPopupWidth;
    var nPopupHeight;
    var nBrowserWidth = document.body.offsetWidth;
    var nBrowserHeight = document.body.offsetHeight;
    var nBrowserViewWidth;
    var nBrowserViewHeight;
    if(window.innerWidth){nBrowserViewWidth = window.innerWidth} else if(document.body.clientWidth){nBrowserViewWidth = document.body.clientWidth};
    if(window.innerHeight){nBrowserViewHeight = window.innerHeight} else if(document.body.clientHeight){nBrowserViewHeight = document.body.clientHeight};
    
    switch(sBoxSize.toLowerCase()){
        case 'none':
            sTargetSize = 'errNonePopup';
            nPopupWidth = 700;
            nPopupHeight = 260;
        break;
        case 's':
            sTargetSize = 'err300Popup';
            nPopupWidth = 300;
            nPopupHeight = 260;
        break;
        case 'm':
	        sTargetSize = 'err500Popup';
            nPopupWidth = 500;
            nPopupHeight = 260;
        break;
        case 'l':
            sTargetSize = 'err700Popup';
            nPopupWidth = 700;
            nPopupHeight = 260;
        break;
        case 'hide':
	        sTargetSize = 'err500Popup errHidePopup';
            nPopupWidth = 500;
            nPopupHeight = 200;
        break;
        default:
	        sTargetSize = 'err500Popup';
            nPopupWidth = 500;
            nPopupHeight = 260;
    }
    
    var IsContact = document.location.href.indexOf('contactconsole');
    ePopupBoxBackground.style.width = (nBrowserWidth) + 'px';
    ePopupBoxBackground.style.height = nBrowserHeight + 'px';
    ePopupBox.className = 'errMsgPopup ' + sTargetSize;
    ePopupBox.style.left = (nBrowserViewWidth/2)-(nPopupWidth/2) + 'px';
    var nCompare;
    if(window.pageYOffset){
        nCompare = ((nBrowserViewHeight/2)-(nPopupHeight/2))+window.pageYOffset;
    } else {
        nCompare = ((nBrowserViewHeight/3)-(nPopupHeight/2)+document.documentElement.scrollTop);
    }
    ePopupBox.style.top = nCompare + 'px';
    if(nCompare<=280){if(IsContact=='-1'){ePopupBox.style.top = '280px';} else {ePopupBox.style.top = '200px';}}
    ePopupBoxContainer.style.display = 'block';
    skinButtons();
    sIFRReplace();
}
function closeErrMsgPopup(){
    var ePopupBoxContainer = document.getElementById('errMsgPopupContainer');
    ePopupBoxContainer.style.display = 'none';
}

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;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function setCarConfigurationCookie(configUrl)
{
    createCookie("savedCarConfiguration",configUrl);
}

function OpenContactConsole(url)
{
	window.open(("http://www.fiat.co.uk" + url), '_contactConsole', 'width=554,height=515');
}

var popupHasBeenOpened;
var webSiteUrl = '';

function openContactConsole(id, trackId, mediaCode) {
	var location = window.location.hash.replace("#", "");
	var setFocus = false;

	if (location == '')
	{
		var qs = new Querystring();
		location = qs.get('hash');
	}
	
	if (mediaCode == '')
	{
		mediaCode = '106';
	}
	
	
	/*
	 *****************************
	 * LP UPDATE :: START
	 *
	 * Without the id conditional test the 'window.location.href' step during 'configure' route through next set of conditionals WILL NOT WORK IN IE.7 (unless followed by an alert!!!)
	 *****************************
	 */
	 
		if (popupHasBeenOpened == true)
		{
			if (id != "configure")
			{
				window.open('', 'name').close();
			}
		}
		
	/*
	 *****************************
	 * LP UPDATE :: END
	 *****************************
	 *
	 */
	
	
	if(id == "book")
	{
		setFocus = true;
		javascript:void(window.open(webSiteUrl+"/contactconsole/ArrangeTestDrive.aspx?eddb=true&mediaCode=" + mediaCode + '&hash=' + location,'name','location=0,status=0,scrollbars=1,height=685,width=575,resizable=1'));
		popupHasBeenOpened = true;
	}
	else if (id == "configure")
	{
		tc_log(trackId);
		window.location.href = (webSiteUrl+"/Showroom/?id=14237#showroom/configurator/configurator_home");
	}
	else if(id == "termsconditions")
	{
		setFocus = true;
		javascript:void(window.open(webSiteUrl+"/PicnicTerms/Default.aspx",'name','location=0,status=0,scrollbars=1,height=685,width=575,resizable=1'));
		popupHasBeenOpened = true;
	}
	else if(id == "privacy")
	{
		setFocus = true;
		javascript:void(window.open(webSiteUrl+"/PicnicPrivacy/",'name','location=0,status=0,scrollbars=1,height=685,width=575,resizable=1'));
		popupHasBeenOpened = true;
	}
	else if(id == "contactdealer")
	{
		setFocus = true;
		javascript:void(window.open(webSiteUrl+"/contactconsole/ContactDealer.aspx?&hash=" + location,'name',	'location=0,status=0,scrollbars=1,height=685,width=575,resizable=1'));
		popupHasBeenOpened = true;
	}
	else
	{
		setFocus = true;
		javascript:void(window.open(webSiteUrl+"/contactconsole/requestbrochure.aspx?mediaCode=" + mediaCode + '&hash=' + location,'name','location=0,status=0,scrollbars=1,height=600,width=575,resizable=1'));
		popupHasBeenOpened = true;
	}
		
	if (trackId != '')
	{
		tc_log(trackId);
		void(0);
	}
		
	return false;
}

function openContactDealer(modelCode) {
	window.open(webSiteUrl+"/contactconsole/ContactDealer.aspx?modelCode=" + modelCode,'name', 'location=0,status=0,scrollbars=1,height=685,width=575,resizable=1');
    return false;
}


function navToUrl(url, trackingCode)
{
	if (url != '')
	{
		window.location.href = url;
	}
	
	if (trackingCode != '')
	{
		tc_log(trackingCode);
		void(0);
	}
		
	return false;	
}

function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	this.get=Querystring_get;
	
	if (qs == null);
		qs=location.search.substring(1,location.search.length);

	if (qs.length == 0) 
		return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var pair = args[i].split('=');
		var name = unescape(pair[0]);
		
		var value = (pair.length==2)
			? unescape(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

function Querystring_get(key, default_) {
	var value=this.params[key];
	return (value!=null) ? value : default_;
}