// mootools addition
window.addEvent("domready", function() {
    if ($("Make")) {
        $("Make").addEvent("change", function() {
            var v = this.getValue();
            setModelAjax(v);
        });

        selectManufacturer();

        var v2 = $("Make").getValue();
        if (v2.length > 0) {
            setModelAjax(v2);
        }
    }
});

function setModelAjax(v) {
    new Ajax("/_colony/driven_vehiclemanager/modelsajax.asp", {
        data: {
            "VehicleManufacturerName": v
        },
        onComplete: function(response) {
            $("Model").replaceWith(new Element("div").setHTML(response).getFirst());
        }
    }).request();
}

// Dom functions

function selectManufacturer(){
	var strUrl = document.location.href;
	var v = "";
	var sIndex = 0;
	for(var i = 0; i < $("Make").length; i++){
		v = $("Make").options[i].value;
		v = v.replace("http:www.drivenleasing.com", "");

		if(v.length > 0 && strUrl.contains(v)){
			sIndex = i;
		}
	}
	
	$("Make").selectedIndex = sIndex;
}


// Multiple Onload Functions to be called
function addLoadListener(fn) {
	if (typeof window.addEventListener != 'undefined') {
		window.addEventListener('load', fn, false);
	} else if (typeof document.addEventListener != 'undefined') {
		document.addEventListener('load', fn, false);
	} else if (typeof window.attachEvent != 'undefined') {
		window.attachEvent('onload', fn);
	} else {
		var oldfn = window.onload;

		if (typeof window.onload != 'function') {
			window.onload = fn;
		} else {
			window.onload = function() {
				oldfn();
				fn();
			};
		}
	}
}

/*////////////////////////////////////////////////////////////
Get Elements By Class Script by Distin Diaz
Source: http://www.dustindiaz.com/getelementsbyclass/
////////////////////////////////////////////////////////////*/
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;
}

function RAgetElementsByName(searchName, node, tag) {
	var nameElements = new Object();
	if ( node == null ) { node = document; }
	if ( tag == null ) { tag = '*'; }
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchName+'(\\s|$)');
	
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].name ) ) {
			nameElements[j] = els[i];
			j++;
		}
	}
	return nameElements;
}


function linkNewWindow(strLoc) {
	window.open(strLoc,'_blank');
	return false;
}


function externalLinks() {
	var links = document.getElementsByTagName('a');
	for(var i = 0; i < links.length; i++) {
		if ( links[i].rel == 'external' ) {
			links[i].onclick = function() { 	window.open(this.href,'_blank');	return false; }

			links[i].title = links[i].title + '. This link will open in a new window.';
		}
	}
}

function printLinks() {
	var spans = getElementsByClass('print', null, 'span');
	for(var i = 0; i < spans.length; i++) {
		spans[i].innerHTML = '<img src="/_images/icons/printpage.gif" alt="" /><a href="#" title="Print Page" onclick="window.print(); return false;">Print Page</a>';
	}
}


/* function prepModels() {
    var oModel = document.getElementById('Model');
    var oMake = document.getElementById('Make');
    
    var iLen = oModel.options.length;
    document.iModels = iLen;
    
    document.ModelArray = new Object;
    for (var loop=1; loop < iLen; loop++) {
          var t = oModel.options[iLen-loop].text;
          var v = oModel.options[iLen-loop].value;
          if ( oModel.options[iLen-loop].selected ) {
            eval('document.ModelArray.o' + (iLen-loop) + ' = new Option(t,v,true);');
          } else {
            eval('document.ModelArray.o' + (iLen-loop) + ' = new Option(t,v,false);');
          }
          oModel.options[iLen-loop] = null;
    }
    
    
    
    
    oMake.onchange = function() {
        
        var oModel = document.getElementById('Model');
        var oMake = document.getElementById('Make');
        var iLen = oModel.options.length;
        
        for (var loop=1; loop < iLen; loop++) {
           oModel.options[iLen-loop] = null;
        }
        var iOpt = 1;
        oModel.options[0] = new Option('Any Model','', false);
        
        for (var loop=1; loop < document.iModels; loop++) {
            
            var o = eval('document.ModelArray.o' + (loop) + ';');
            var v = o.value;
            var t = o.text;
            var s = o.selected;
            var m = oMake.options[oMake.options.selectedIndex].value + '/';
            
            if ( ( v.indexOf(m) == 0) && ( m != '' ) ) {
                
                oModel.options[iOpt] = new Option(t,v,s);
                iOpt++;
                
            }
        }
        
    }
    
    
    if ( oMake.options[oMake.options.selectedIndex].value != '' ) {
        var iOpt = 1;
        oModel.options[0] = new Option('Any Model','');
        for (var loop=1; loop < document.iModels; loop++) {
            var o = eval('document.ModelArray.o' + parseInt(loop,10) + ';');
            var v = o.value;
            var t = o.text;
            var s = o.selected;
            var m = oMake.options[oMake.options.selectedIndex].value + '/';
            
            if ( ( v.indexOf(m) == 0) ) {
                oModel.options[iOpt] = new Option(t,v,s);
                iOpt++;    
            }
        }
    }
} */

function makeNumeric(sText)
{
	var ValidChars = "0123456789.";
	var Char;
	var returnString = "";
	
	for (i = 0; i < sText.length; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) != -1) 
		{
			returnString += Char;
		}
	}
	
	return returnString;
}

function FormatNumber(num,decimalNum)
{ 
    if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum));
	tmpNum /= Math.pow(10,decimalNum);
	
	tmpNum = String(tmpNum);
	
	if(tmpNum.indexOf(".") == -1)
		tmpNum += ".00";
	
	if((tmpNum.length - tmpNum.indexOf(".")) <= 2)
		tmpNum += "0";

	return tmpNum;
}

function taxcalc()
{
	var baseval = document.getElementById("Year").value;
	
	var coef = document.getElementById("CO2").value;
	var vehval = document.getElementById("Value").value;
	var fuelsup = document.getElementById("Fuel").value;
	var taxrate = document.getElementById("TaxRate")[document.getElementById("TaxRate").selectedIndex].value;
	
	var roundcoef = ((parseInt(coef)) - (parseInt(coef) % 5));	
	var percentagetaxed = ((((roundcoef - (baseval))/5)+15) + parseInt(fuelsup, 10));	

	if (percentagetaxed < 15)
		percentagetaxed = 15;
		
	if (percentagetaxed > 35)
		percentagetaxed = 35;
	
	vehval = makeNumeric(vehval); //remove any non-numeric characters
	
	if (vehval > 80000)
		vehval = 80000;
	
	
	var amounttaxed = (vehval / 100) * percentagetaxed;
	var yearlytax = (amounttaxed / 100) * taxrate;	
	var monthlytax = yearlytax / 12;
	
	document.getElementById("resultbox").innerHTML = '£' + FormatNumber(yearlytax,2) +  "pa / £" + FormatNumber(monthlytax,2) + "pcm";

}

function bookmarkLinks() {
    
	var spans = getElementsByClass('favourites', null, 'span');
	for(var i = 0; i < spans.length; i++) {
		spans[i].innerHTML = '<a href="#" onclick="CreateBookmarkLink(); return false;">' + spans[i].title +'</a>';
	}
}

addLoadListener(bookmarkLinks);


function CreateBookmarkLink() {
    title = document.title; 
    url = document.URL;
    if (window.sidebar) { // Mozilla Firefox Bookmark
        window.sidebar.addPanel(title, url,"");
    } else if( window.external ) { // IE Favorite
        window.external.AddFavorite( url, title);
    }
}

function newtaxcalc() {
    var baseval = document.getElementById("Year").value;

    var coef = document.getElementById("CO2").value;
    var vehval = document.getElementById("Value").value;
    var fuelsup = document.getElementById("Fuel").value;
    var taxrate = document.getElementById("TaxRate")[document.getElementById("TaxRate").selectedIndex].value;

    var roundcoef
    var percentagetaxed




    if (baseval == parseInt(120)) { //if we have a 2008-2010 car registered

        if (parseInt(coef) <= 120) { //if this cars emission is equal or below 120 then this car has a better percentage taxed

            //petrol = 0 else diesal car
            if (fuelsup == 0) {
                percentagetaxed = 10
            }
            else {
                percentagetaxed = 13
            }
        }
        else {
            baseval = 135 //reset back to 135 - this car doesnt qualify for the 120 or less emission bonus	

            roundcoef = ((parseInt(coef)) - (parseInt(coef) % 5)); //rounding down to the nearest 5
            percentagetaxed = ((((roundcoef - (baseval)) / 5) + 15) + parseInt(fuelsup, 10));

            if (percentagetaxed < 15)
                percentagetaxed = 15;

            if (percentagetaxed > 35)
                percentagetaxed = 35;
        }

    }
    else {
        roundcoef = ((parseInt(coef)) - (parseInt(coef) % 5)); //rounding down to the nearest 5
        percentagetaxed = ((((roundcoef - (baseval)) / 5) + 15) + parseInt(fuelsup, 10));

        if (percentagetaxed < 15)
            percentagetaxed = 15;

        if (percentagetaxed > 35)
            percentagetaxed = 35;
    }

   vehval = makeNumeric(vehval); //remove any non-numeric characters

    if (vehval > 80000)
        vehval = 80000;
 
    var amounttaxed = (vehval / 100) * percentagetaxed;
    var yearlytax = (amounttaxed / 100) * taxrate;
    var monthlytax = yearlytax / 12;

    document.getElementById("resultbox").innerHTML = '£' + FormatNumber(yearlytax, 2) + "pa / £" + FormatNumber(monthlytax, 2) + "pcm";

}




function parentElement( strTag, el) {

if (!(el.parentNode)) return null;

if ( (el.parentNode.tagName.toLowerCase() == strTag.toLowerCase() ) ) return el.parentNode;

return parentElement(strTag, el.parentNode);

}


function linklist2select( id1, id2 ) {
    var list = document.getElementById(id1);
    var select = document.getElementById(id2);
    var links = list.getElementsByTagName('a');
   
    for(var i = 0; i < links.length; i++) {
        var a = links[i];
        var strVal = '';
        rExp = /\//gi;
        rExp2 = /http:www.drivenleasing.com/gi;
        
        strVal = a.getAttribute('href').replace(rExp,'');
        strVal = strVal.replace(rExp2,'');
        
        var linkText = a.innerHTML;
        linkText = linkText.replace(' Contract Hire','');
        
        var opt = new Option(linkText, strVal, false);
        select.options[select.options.length] = opt;
    }
}
 

var flashObjectRules = {

'.flashobject' : function(el) {

var rExp = /(.jpg|.gif)/gi;

var fLoc = el.src.replace(rExp,'.swf');

var fo2 = new FlashObject(fLoc, "viewer", el.width, el.height, "7","#000");

fo2.addParam("wmode","transparent");

fo2.addParam("menu","false");

fo2.addParam("quality","high");

fo2.write( parentElement('div',el).id );

} 

};

Behaviour.register(flashObjectRules);
