//disable ITV setting the domain in their http://www.itv.com/_app/cmn/js/base.js file; for some reason they want to set the domain of our documents which
//causes an 'Illegal document.domain value code 1009' error since we're not in their domain, we're a third party. Very odd that they would have this code on
//banners designed for use on third party sites. This also solves the invalid dom value error in IE.
var disableDocumentDomainSet = true;



function addOption(selObj, sText, sValue){
	var opt = document.createElement('option');
	var txt = document.createTextNode(sText);

	opt.setAttribute('value', sValue);
 
	opt.appendChild(txt);
	selObj.appendChild(opt);

	return false;
}

function removeAllOptions(obj) {
	var l = obj.options.length;
	var i = 0;
	for (i = 0; i < l; i++) {
		obj.removeChild(obj.options[0]);
	}
	return false;
}

function setbrowser() {
	var useragent = navigator.userAgent;
	var bName = "";
	var loader = "";
	bName = (useragent.indexOf('Mozilla') > -1) ? 'Mozilla' : navigator.appName;
	bName = (useragent.indexOf('Opera') > -1) ? 'Opera' : navigator.appName;
	var pos = useragent.indexOf('MSIE');
	var bVer = 0;
	if ((pos > -1) && (bName != 'Mozilla') && (bName != 'Opera')) {
		alert(bName);
		bVer = useragent.substring(pos + 5);
		pos = bVer.indexOf(';');
		bVer = bVer.substring(0, pos);
	}
	pos = useragent.indexOf('Opera');
	if (pos > -1) {
		bVer = useragent.substring(pos + 6);
		pos = bVer.indexOf(' ');
		bVer = bVer.substring(0, pos);
	}
	if (bName == "Netscape") {
		bVer = useragent.substring(8);
		pos = bVer.indexOf(' ');
		bVer = bVer.substring(0, pos);
		pos = bVer.indexOf('-');
		if (pos > 0) {
			bVer = bVer.substring(0, pos);
		}
	}
	if (bName == "Netscape" && parseInt(navigator.appVersion) >= 5) {
		pos = useragent.lastIndexOf('/');
		bVer = useragent.substring(pos + 1);
	}

	var browser;
	if (bName == "Microsoft Internet Explorer" && bVer >= 4 && useragent.indexOf('Mac') == -1) {
		browser = "ie";
	} else {
		if (bName == "Microsoft Internet Explorer" && bVer >= 5.2 && useragent.indexOf('Mac') > -1) {
			browser = "iemac";
		} else {
			if ((bName == "Netscape" && (bVer >= 7 || parseInt(bVer) < 2)) || (bName == 'Mozilla')) {
				browser = "ns7";
			} else {
				if (bName == "Netscape" && bVer > 4 && bVer < 5) {
					browser = "ns4";
				} else {
					if (bName == 'Opera' && bVer > 7.02) {
						browser = "opera";
					} else {
						browser = "static";
					}
				}
			}
		}
	}

}

function getlayerall(id, document) {
	var l = 0;
	if (!document) {
	    document = window.document;
	}
    if (document.layers) {
        for (l = 0; l < document.layers.length; l++) {
            if (document.layers[l].id == id) {
                return document.layers[l];
            }
        }
        for (l = 0; l < document.layers.length; l++) {
			var result = getlayer(id, document.layers[l].document);
			if (result) {
			    return result;
			}
        }
		return null;
	}
	else if (document.all) {
		return document.all[id];
	}
	else if (document.getElementById) {
		return document.getElementById(id);
	}
	return null;
}


var isNS = (navigator.appName.indexOf("Netscape") >= 0);
var isIE = (navigator.appName.indexOf("Microsoft") >= 0);

function getlayer(layername) {
	var theLayer;
	if (document.layers) {
	    theLayer = document.layers[layername];
	} else {
	    if (document.getElementById) {
	        theLayer = document.getElementById(layername);
	    } else {
	        theLayer = document.all[layername];
	    }
	}
    return theLayer;
}

function toggleLayer(slayer, dispBlock){
	dispBlock = dispBlock || true;
	var layer = document.getElementById(slayer);
	if (layer.style.visibility == "visible"){
		layeroff(layer);
	}else{
		layeron(layer, dispBlock);
	}
}

function layeron(slayer, dispBlock) {
	  dispBlock = dispBlock || true;
	  if(slayer){
			if (document.layers) {
				slayer.visibility="visible";
			} else {
				slayer.style.visibility="visible";
				if(dispBlock){
					slayer.style.display="block";
				}else{
					slayer.style.display="inline";
				}
			}
	  }
} 

function layeroff(slayer) {
	slayer.style.visibility="hidden" ;
	slayer.style.display="none";
}

function layerdisplayon(slayer) {	
	slayer.style.display="inline";
	slayer.style.visibility="visible";
}

function layerdisplayoff(slayer) {
	slayer.style.visibility="hidden" ;
	slayer.style.display="none";
}

function elementdisplayon(elname){
	layerdisplayon(getlayer(elname));
}

function elementdisplayoff(elname){
	layerdisplayoff(getlayer(elname));
}


function UpdateInnerHTML(lname, html){
	try{
		document.getElementById(lname).innerHTML = html;
	}
	catch(err)
	{
	return false;
	}
}

/* flash clicker fix  */
if(document.getElementsByTagName){
    var objects = document.getElementsByTagName("object");
    var i = 0;
	for (i = 0; i < objects.length; i++)
	{
		objects[i].outerHTML = objects[i].outerHTML;
	}
}

/* endflash clicker fix  */

function readCookie(name) {
	var nameEQ = name + "=";
	var i = 0;
	var ca = document.cookie.split(';');
	for(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 deleteCookie(name) {
	createCookie(name,"",-1);
}

function createCookie(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    var currentDomain = document.location.hostname.toString().toLowerCase();

    if (currentDomain.indexOf("localhost") == -1) {
        var i = currentDomain.indexOf(".");
        currentDomain = currentDomain.substring(i, currentDomain.length);
    } else {
        currentDomain = "";
    }
    document.cookie = name + "=" + value + expires + "; path=/; domain=" + currentDomain;
}

function checkinit() {
    if (typeof(pageinit) == 'function') {
        pageinit();
    }
}

function checkMobile(){
	var x = readCookie('SendToMobile');
	if (x=='Go' ){
		top.location.href='payment.aspx?wci=mobilepayment';
	}
}

function request(var_name){
	var loc = document.location.href;
	var qPos = loc.indexOf('?');
	if (qPos > 0){
		loc = loc.substring(qPos, loc.length);
	}else{
		loc='';
	}
	
	if (loc.toLowerCase().indexOf(var_name) <= 0)
		{return '';}
	else{ 
		var pos1 = loc.toLowerCase().indexOf('&', loc.toLowerCase().indexOf(var_name));
		var pos2 = loc.toLowerCase().indexOf('#', loc.toLowerCase().indexOf(var_name));
		if (pos1<=0&&pos2<=0)
			{return loc.substring(loc.toLowerCase().indexOf(var_name) + var_name.length + 1);}
		else {
			if (pos1>0){
				return loc.substring(loc.toLowerCase().indexOf(var_name) + var_name.length + 1, loc.toLowerCase().indexOf('&', loc.toLowerCase().indexOf(var_name)));
			}else{
			return loc.substring(loc.toLowerCase().indexOf(var_name) + var_name.length + 1, loc.toLowerCase().indexOf('#', loc.toLowerCase().indexOf(var_name)));
			}
		}	
	}
}

function getElementsByClassName(strClassName, strTagName, oElm){
	var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
	var i = 0;
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements);
}

function getInputValue(el){

//         function takes in reference to a form input and returns the current value
//         if a checkbox is unchecked, will return a zero length string
//         if a radio set is unselected, will return a zero length string
	var i = 0;
	var sRet = '';
	if(el.options){
		//selectbox
		sRet = el.options[el.selectedIndex].value;
	}else if(el.length){
		//multiple option radio
		for(i = 0; i < el.length; i++){
			if(el[i].checked){
				sRet = el[i].value;
			}
		}
	}else if(el.type == 'radio'){
		//single option radio
		if(el.checked){
			sRet = el.value;
		}
	}else if(el.type == 'checkbox'){
		//checkbox
		if(el.checked){
			sRet = el.value;
		}
	}else{
		sRet = el.value;
	}
	return sRet;
}

function setInputValue(el, sValue){

//           function takes in reference to a form input and the new value
//           will set the value correctly for textboxes, radios, checkboxes and selectboxes
	var i = 0;
	if(el.options){
		//selectbox
		for(i = 0; i<el.options.length; i++){
			if(el.options[i].value == sValue){
				el.selectedIndex = i;
				break;
			}
		}
	}else if(el.length){
		//multiple option radio
		for(i = 0; i < el.length; i++){
			el[i].checked = false;
			if(el[i].value == sValue){
				el[i].checked = true;                                           
			}
		}
	}else if(el.type == 'radio'){
		//single option radio
		if(el.value == sValue){
			el.checked = true;
		}
	}else if(el.type == 'checkbox'){
		//checkbox
		el.checked = false;
		if(el.value == sValue){
			el.checked = true;
		}
	}else{
		el.value = sValue;
	}
}

function addLoadEvent(func){
	/* appends a function to the onload event */
	
	var oldonload = window.onload;
	if(typeof window.onload != 'function'){
		window.onload = func;
	}else{
	window.onload = function () {
	    oldonload();
	    if (typeof func == 'function') {
	        func();
	    }
	};
	}
}

function left(str, n){
	if (n <= 0) {
		return "";
	}
	else if (n > String(str).length) {
		return str;
	}
	else {
		return String(str).substring(0, n);
	}
}

function right(str, n){
    if (n <= 0) {
        return "";
    }
    else if (n > String(str).length) {
        return str;
    }
    else {
        var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
    }
}

function removeClass(element, oldClass){
	var pattern = new RegExp("(^| )" + oldClass + "( |$)");
	element.className = element.className.replace(pattern, "$1");
	element.className = element.className.replace(/ $/, "");
}

function hasClass(element, findClass){
	var pattern = new RegExp("(^| )" + findClass + "( |$)");
	if (pattern.test(element.className)){
		return true;
	}
	return false;
}

function addClass(element, newClass) {
	if (!hasClass(element, newClass)) {
		if (element.className == "") {
			element.className = newClass;
		} else {
			element.className += " " + newClass;
		}
	}
}
