﻿function fixIEBGFlicker()
{
	try 
	{ 
		document.execCommand("BackgroundImageCache", false, true); 
	} 
	catch(err) {}
}
function postBackHiddenField(hiddenFieldID) 
{
    var hiddenField = $get(hiddenFieldID);
    if (hiddenField) 
    {
        hiddenField.value = (new Date()).getTime();
        __doPostBack(hiddenFieldID,'');
	}
}
function resize_elements(items)
{
	var recs = new Array();
	for(i = 0; i < items.length; i++)
	{	
		recs[i] = document.getElementById(items[i]);
	}
	
	var max = 0;
	for(i=0; i<recs.length; i++)
	{
		if(existsDefined(recs[i]))
		{
		
			
			if(recs[i].offsetHeight > max)
			{
				max = recs[i].offsetHeight;
			}
		}
	}
	for(i = 0; i < recs.length; i++)
	{
		
		if(existsDefined(recs[i]))
		{
	
			recs[i].style.height = max +20 + "px";
		}
	}
	//alert(max);
	
}
function makePreWindow( url, window_width, window_height, scrollbars )
{
    var screenPosX,screenPosY;
	var newWindow = null;
	if(!scrollbars)
	{
		scrollbars = 0;
	}
	if(window_width > screen.availWidth || window_height > screen.availHeight)
	{
		scrollbars = 1;
		window_height = window_height + 14;
		window_width = window_width + 14;
	}
			screenPosX = 0;
			screenPosY = 0;
	newWindow = window.open(url, 'Preview','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars='+scrollbars+',resizable=0,copyhistory=0,width='+window_width+',height='+window_height+',screenX='+screenPosX+',screenY='+screenPosY);
	newWindow.focus();
}
function DeselectAssociatedDropDown(txt,dropdown)
{
	var ddl = document.getElementById(findControl(dropdown,'select'));
	
	if(txt.value == "")
		ddl.selectedIndex = 0;
	return false;
}
function findControl(elname,htmlElementType)
{
    var i;
    var foundID = "";
    htmlElementType = typeof htmlElementType == "undefined" ? "" : htmlElementType;
    htmlElementType = htmlElementType.toLowerCase() == 'dropdownlist' ? 'select' : htmlElementType;
    var x = document.getElementsByTagName(htmlElementType);
    if(htmlElementType != "")
    {
		if(x.length > 1)
		{
			var i = 0;
			while(i < x.length)
			{
				var e = x[i];
				if ((e != null) && (foundID == ""))
				{                   
					var cid = new String(e.id); 
					var index = cid.search(elname);
					if ((index >= 0) && (cid.length == (index + elname.length)))
					{                    
						foundID = cid;
						i = x.length;
					}
				}
				i++;
			}
		}
	}
	else
	{
		for(i = 0; i < document.forms[0].elements.length; i ++)
		{
			var e = document.forms[0].elements[i];
			if ((e != null) && (foundID == ""))
			{                   
				var cid = new String(e.id); 
				var index = cid.search(elname);
				if ((index > 0) && (cid.length == (index + elname.length)))
				{                    
					foundID = cid;
				}
			}
		}
	}
	
    return (foundID);
}
function getSelectedDropDownValue(ddl)
{
	if(existsDefined(ddl.length) && !existsDefined(ddl.options))
		ddl = document.getElementById(ddl);
		
	return ddl.options[ddl.selectedIndex].value;
}
function SelectDropDownValue(value, ddl)
{
	if(typeof ddl == "string")
	{
		ddl = document.getElementById(ddl);
	}
	for(var i = 0; i < ddl.options.length; i++)
	{
		if(ddl.options[i].value == value)
			ddl.options[i].selected = true;
	}
}
function clearOptions(ddl)
{

	var i;
	for(i=ddl.options.length-1; i >= 0; i--)
	{
		ddl.remove(i);
	}
}
function addOptionOther(ddl)
{
	
	ddl.options[1] = new Option("Other","-1");
}
function EnableRowHighlight(acceptableClasses)
{
	var tables = document.getElementsByTagName("table")
	var goahead = false;
	for(var i = 0; i < tables.length; i++)
	{
		goahead = false;
		for(var j = 0; j < acceptableClasses.length; j++)
		{
			if(tables[i].className.indexOf(acceptableClasses[j]) != -1)
				goahead = true;
		}
		
		if(goahead)
		{
			
			var tablebody = tables[i].getElementsByTagName("tbody")
			for(var j = 0; j < tablebody.length; j++)
			{
				var tablerow = tablebody[j].getElementsByTagName("tr");
				for(var k = 0; k < tablerow.length; k++)
				{
					var th = tablerow[k].getElementsByTagName("th");
					if(th.length == 0)
					{
						tablerow[k].onmouseover	= TableRowMouseOver;
						tablerow[k].onmouseout	= TableRowMouseOut;
					}
				}
			}				
		}
	}	
}

function TableRowMouseOver()
{
	this.className.indexOf(" HighlightedRow") == -1 ? this.className += " HighlightedRow" : this.className = this.className;
}

function TableRowMouseOut()
{
	this.className = this.className.replace("HighlightedRow","");
}

function DisableSave(sender, validationgroup, makevisible)
{
	Page_ClientValidate();
	var dis = true;
	var disp = sender.style.display;
	for(var i = 0; i < Page_Validators.length; i++)
	{
		var val = Page_Validators[i];
		if(!val.isvalid && (val.validationGroup == validationgroup || validationgroup == ''))
		{
			dis = false;
			i = Page_Validators.length;
		}
	}
	
	sender.style.display = dis ? "none" : disp;
	if(makevisible != undefined && dis)
		makevisible.style.display = "inline";
	
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) 
  {
  	//Netscape compliant
	scrOfY = window.pageYOffset;
	scrOfX = window.pageXOffset;
  } 
  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
  {
	//DOM compliant
	scrOfY = document.body.scrollTop;
	scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	//IE6 standards compliant mode
	scrOfY = document.documentElement.scrollTop;
	scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
function GenerateRandom(ceiling)
{
	var randomnumber=Math.floor(Math.random()*ceiling)
	return randomnumber;
}
function isDigit(num) {
	if (num.length>1)
	{
		return false;
	}
	var string="1234567890";
	if (string.indexOf(num) != -1)
	{
		return true;
	}
	return false;
}
function isInteger(val){
	if(isNaN(val))
		return false;
	for(var i=0;i<val.length;i++)
	{
		if(!isDigit(val.charAt(i)))
		{
			return false;
		}		
	}
	return true;
}
function isBlank(val)
{
	if(val==null)
	{
		return true;
	}
	for(var i=0;i<val.length;i++) 
	{
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r"))
		{
			return false;
		}
	}
	return true;
}

var fixoffsetleft = 0;
var fixoffsettop = 0;
function getposOffset(what, offsettype)
{
	var totaloffset=(offsettype=="left")? (what.offsetLeft - fixoffsetleft) : (what.offsetTop + fixoffsettop);
	var parentEl=what.offsetParent;
	while (parentEl!=null)
	{
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}
function get_query_string(qstr,qs,esc) 
{
	var i, pos, argname, argvalue, queryString, pairs;
	queryString = !existsDefined(qs) ? location.href.substring(location.href.indexOf("?")+1) : qs; 
	if(!existsDefined(esc))
		esc = true;
	pairs = queryString.split("&");
	for (i = 0; i < pairs.length; i++) 
	{
		pos = pairs[i].indexOf('=');
		if (pos == -1) 
		{
			continue;
		}
		argname = pairs[i].substring(0,pos);
		argvalue = pairs[i].substring(pos+1);
		if (argname == qstr) 
		{
			if(!esc)
				return argvalue;
			else
				return unescape(argvalue.replace(/\+/g, " "));
		}
	}
	return "";
}
function focusWindow(linkplace,windowname)
{
	var win = window.open(linkplace,windowname);
	win.focus();
}
function existsDefined(i,de)
{
	if(de == null || de == "")
		de = false;
	if(de)
		alert(typeof i);
	if(typeof i == "undefined" || i == null)
		return false;
	else
		return true;
}
function printArray(arr)
{
	var strAl = "";
	for(var i = 0; i < arr.length; i++)
	{
		strAl += "[" + i + "] = " + arr[i] + "\n";
	}
	return strAl;
}
function toggleVisibility(sender,el)
{
	clearActiveTimer();
	var sendere = null;
	
	if(existsDefined(sender.length))
		sendere = document.getElementById(sender);
	else
		sendere = sender;
		
	if(existsDefined(el.length))
		ele = document.getElementById(el);
	else
		ele = el;
		
	
	if(ele.className.indexOf("Hidden") == -1)
	{
		ele.className += " Hidden";
		if(existsDefined(sendere))		
			sendere.className = sendere.className.replace("Expanded","");
	}
	else
	{
		ele.className = ele.className.replace("Hidden","");
		if(existsDefined(sendere))		
			sendere.className += " Expanded";	
	}
}
var activeTimer = null;
function rolloverActivate(sender, el)
{
	var delayamt = 1000;
	
	if(existsDefined(el.length))
		ele = document.getElementById(el);
	else
		ele = el;
	
	if(ele.className.indexOf("Hidden") == -1)
	{
		return false;
	}
	
	var now = new Date();
	sender.id = now.getFullYear() + "" + now.getDay() + "" + "" + now.getHours() + "" + now.getMinutes() + "" + now.getSeconds() + "" + now.getMilliseconds(); 
	activeTimer = setTimeout('toggleVisibility("' + sender.id + '", "' + el + '");',delayamt);
}
function clearActiveTimer()
{
	clearTimeout(activeTimer);
}
function getPageFileName()
{
	return location.href.substring(location.href.lastIndexOf('/')+1);
}
function subMenuInitSelected(divid)
{
	var div = document.getElementById(divid);
	if(existsDefined(div))
		div.className = div.className.replace("Hidden","");
	subMenuInit();
}
function subMenuInit(fnMatch)
{
	var expandSubNavOnActive = true;
	fnMatch = existsDefined(fnMatch) ? fnMatch : getPageFileName();
	fnMatch = fnMatch.indexOf("#") == -1 ? fnMatch : fnMatch.substring(0,fnMatch.indexOf("#"));
	fnMatch = fnMatch.indexOf("?") == -1 ? fnMatch : fnMatch.substring(0,fnMatch.indexOf("?"));
	var SubMenu = document.getElementById(findControl("rcSubmenu","div"));
	var lnks = SubMenu.getElementsByTagName("a");
	for(var i = 0; i < lnks.length; i++)
	{
		var ctl = lnks[i];
		var hre = ctl.href.substring(ctl.href.lastIndexOf('/')+1);
		
		if(hre.toLowerCase() == fnMatch.toLowerCase())
		{
			if(typeof ctl.onmouseover == "function" && expandSubNavOnActive)
			{
				var submen = null;
				var psib = ctl.nextSibling;;
				while(!existsDefined(submen))
				{
					psib = psib.nextSibling;
					submen = psib;
					if(!existsDefined(submen.tagName))
						submen = null;
				}
				toggleVisibility(ctl,submen.id);
				
			}
			ctl.className = "Active " + ctl.className;
			var parctl = ctl.parentNode;
			while(parctl.className.indexOf("SubMenuGrouping") == -1)
			{
				var apprlnk = null;
				var sib = parctl.previousSibling;;
				while(!existsDefined(apprlnk))
				{
					sib = sib.previousSibling;
					apprlnk = sib;
					if(!existsDefined(apprlnk.tagName))
						apprlnk = null;
				}
				toggleVisibility(apprlnk,parctl.id);
				parctl = parctl.parentNode;
			}
			parctl.className = parctl.className.replace("Hidden","");
		}
	}
}
function elementHasScrollbar(elem_id)
{
	elem = existsDefined(elem_id.length) ? document.getElementById(elem_id) : elem_id;
	
	if (elem.clientHeight < elem.scrollHeight)
		return true;
	else
		return false;
}
function resetForm(formid)
{
	var form = document.getElementById(formid);
	
	if(existsDefined(form))
		form.reset();
}
function adminToggleCollapse(sender, collapseid)
{
	var div = document.getElementById(collapseid);
	if(existsDefined(div))
	{
		var col = div.childNodes;
		for(var i = 0; i < col.length; i++)
		{
			if(col[i] != sender)
				col.className = col.className.indexOf("Hidden") == -1 ? col.className + " Hidden" : col.className.replace(" Hidden","");
		}
	}
}
function newsRedirect(urlto, accid)
{
	var hf = document.getElementById(accid+"_AccordionExtender_ClientState");
	var url = "";
	if(existsDefined(hf))
		url = urlto + "&p=" + hf.value;
	else
		url = urlto;
	redirect(url);
}
function accordionAssignActive(sender, accid)
{
	
	var acccontrol = document.getElementById(accid+"_AccordionExtender_ClientState");
	if(existsDefined(acccontrol))
	{
		
		var lnks = document.getElementsByTagName("div");
		var head = new Array();
		for(var i = 0; i < lnks.length; i++)
		{
			if(lnks[i].className.indexOf("AccordionHeader") != -1)
				head.push(lnks[i]);
		}
		for(var i = 0; i < head.length; i++)
		{
			if(head[i] != sender)
				head[i].className = head[i].className.replace("Expanded","");
		}		
		sender.className = sender.className.indexOf("Expanded") != -1 ? sender.className.replace("Expanded","") : sender.className + " Expanded" ;
	}
}
function newsPageInit(accid)
{
	var acccontrol = document.getElementById(accid+"_AccordionExtender_ClientState");
	if(existsDefined(acccontrol))
	{
		var lnks = document.getElementsByTagName("div");
		var head = new Array();
		for(var i = 0; i < lnks.length; i++)
		{
			if(lnks[i].className.indexOf("AccordionHeader") != -1)
				head.push(lnks[i]);
		}
		if(head.length > 0)
			head[parseInt(acccontrol.value)].className += " Expanded";
	}
}
function redirect(url)
{
	window.location = url;
}
function catchEnter(e,focusel,eltype)
{
	var el = null;
	el = focusel;
	if(existsDefined(focusel.length))
		el = document.getElementById(focusel);
	if(!existsDefined(el) && existsDefined(eltype))
		el = document.getElementById(findControl(focusel,eltype));
		
    var id = !e ? window.event : e;
    if (id['keyCode'] == 13  )
    {

       el.focus()

    }
}
function fixIeFlash()
{
	objects = document.getElementsByTagName("object");
	for (var i = 0; i < objects.length; i++)
	{
		objects[i].outerHTML = objects[i].outerHTML;
	}
}
 
function imageInit()
{
	var img = document.getElementById("imgImage");
	if(existsDefined(img))
	{
		var imgPath = get_query_string("imagePath");
		if(imgPath != "")
			img.src = imgPath;
	}
	resizeWindow();
}
function resizeWindow()
{	
	var width = 720;
	var height = 940;
	window.resizeTo(width,height);
}

function unhideOther(sender, el, val)
{
	if(existsDefined(el.length))
		el = document.getElementById(el);
		
	if(existsDefined(val.length))
		val = document.getElementById(val);
		
		
	el.className = el.className.replace("Hidden","");
	if(existsDefined(val))
		val.enabled = true;
}
function hideOther(sender, el, val)
{
	if(existsDefined(el.length))
		el = document.getElementById(el);
	
	if(existsDefined(val.length))
		val = document.getElementById(val);
	
	if(el.className.indexOf("Hidden") == -1)
		el.className += " Hidden";
	if(existsDefined(val))
		val.enabled = false;
}

function brandSelected(sender) {
    if (sender.options[sender.selectedIndex].value == "-1") {
        unhideOther(sender, 'divOtherBrand', 'rfvOtherBrand');
    }
    else {
        hideOther(sender, 'divOtherBrand', 'rfvOtherBrand');
    }
}

function modelSelected(sender)
{
	if(sender.options[sender.selectedIndex].value == "-1")
	{
		unhideOther(sender,'divOtherModel','rfvOtherModel');
	}
	else
	{
		hideOther(sender,'divOtherModel','rfvOtherModel');
		//retrieve template and populate if coming from vehicle details
//		var make = document.getElementById(findControl("ddlMake","select"));
//		var model = document.getElementById(findControl("ddlModel","select"));
//		var year = document.getElementById(findControl("txtModelYear","input"));
//		
//		make = existsDefined(make) ? getSelectedDropDownValue(make) : 0;
//		model = existsDefined(model) ? getSelectedDropDownValue(model) : 0;
//		year = existsDefined(year) ? parseInt(year.value) : 0;
//		
//		if(make != 0 && model != 0 && year != 0 && isInteger(year))
//		{
//			wsUtilities.retrieveVehicleTemplateDetails(make,model,year,modelSelectedFinish);
//		}
	}
}
function modelSelectedFinish(result)
{
	try
	{
		assignValuesFromTemplate(result);
	}
	catch(e)
	{
		
	}
	
}
modelsVal = null;

function getModels(sender,target, selval, val, isTemp)
{
	if(!existsDefined(isTemp))
			isTemp = false;
	
	if(sender.options[sender.selectedIndex].value == "-1")
	{

	    unhideOther(sender, 'divOtherBrand', 'rfvOtherBrand');
			clearOptions(document.getElementById(findControl(target,"select")));
			addOptionOther(document.getElementById(findControl(target,"select")));
			
			try
			{
				clearAssignedValues();
			}
			catch(e)
			{
			
			}
		
	}
	else
	{

	    hideOther(sender, 'divOtherBrand', 'rfvOtherBrand');
			
		if(!existsDefined(val))
			val = null;
			
		
		
		modelsVal = val;	
		
		if(!existsDefined(selval))
			selval = 0;
		var val = sender.options[sender.selectedIndex].value;
		if(val != "")
		    wsUtilities.GetModelDropDown(val, target, selval, getModelsComplete);
		else
			getModelsComplete();
	}
}
function getModelsComplete(result)
{
	
	var dd = document.getElementById(findControl(result.ID,"select"));
	
	
	clearOptions(dd);
	
	if(existsDefined(result))
	{			
		var i = 0;
		while (result.Items[i] != null)
		{
			dd.options[i] = new Option(result.Items[i].Text,result.Items[i].Value);
			if(result.Items[i].Selected)
				dd.options[i].selected = true;
			i++;
		}
	}
	
	if(existsDefined(modelsVal))
		Page_ClientValidate(modelsVal);

}

function getBrands(sender, target, selval, val, isTemp) {
    if (!existsDefined(isTemp))
        isTemp = false;

    if (sender.options[sender.selectedIndex].value == "-1") {

        unhideOther(sender, 'divOtherMake', 'rfvOtherMake');
        clearOptions(document.getElementById(findControl(target, "select")));
        addOptionOther(document.getElementById(findControl(target, "select")));

        try {
            clearAssignedValues();
        }
        catch (e) {

        }

    }
    else {

        hideOther(sender, 'divOtherMake', 'rfvOtherMake');

        if (!existsDefined(val))
            val = null;

        modelsVal = val;

        if (!existsDefined(selval))
            selval = 0;
        var val = sender.options[sender.selectedIndex].value;

        if (val != "")
            wsUtilities.GetBrandDropDown(val, target, selval, getBrandsComplete);
        else
            getBrandsComplete();
    }
}

function getBrandsComplete(result) {

    var dd = document.getElementById(findControl(result.ID, "select"));

    clearOptions(dd);

    if (existsDefined(result)) {
        var i = 0;
        while (result.Items[i] != null) {
            dd.options[i] = new Option(result.Items[i].Text, result.Items[i].Value);
            if (result.Items[i].Selected)
                dd.options[i].selected = true;
            i++;
        }
    }

    if (existsDefined(modelsVal))
        Page_ClientValidate(modelsVal);

}

function formatCurrency(num) 
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}
function stripCharacters(str, chars)
{
	
	filteredValues = chars;
	var i;
	var returnString = "";
	for (i = 0; i < str.length; i++) 
	{  // Search through string and append to unfiltered values to returnString.
		var c = str.charAt(i);
		if (filteredValues.indexOf(c) == -1) 
			returnString += c;
	}
	return returnString;
}
function deleteImage(imageid,isTemp)
{
	if(confirm('This will permenantly delete this image. Continue?'))
		wsUtilities.deleteVehicleImage(imageid,isTemp,deleteImageComplete);
}
	
function deleteImageComplete(result)
{
	document.getElementById("btnRefresher").click();
}

function editImage(imageid,isTemp)
{
	var newcap = prompt('Edit Caption','');
	if(existsDefineD(newcap))
		wsUtilities.editVehicleImage(imageid,newcap,isTemp,editImageFinish);
}
function setImageMaster(imageid,isTemp)
{
	wsUtilities.setImageMaster(imageid,isTemp,setImageMasterFinish);
}
function setImageMasterFinish(result)
{
	if(result == true)
		alert("Image Updated");
	else
		alert("There was an error updating the image");
}
function editImageFinish(result)
{
	if(result == true)
		alert("Image Updated");
	else
		alert("There was an error updating the image");
		
	document.getElementById("btnRefresher").click();
}
var prevLnk = null;
function changeActiveImage(to)
{
	var act = document.getElementById("imgActive");
	var lnk = document.getElementById("lnkActive");
	if (existsDefined(act) && existsDefined(lnk)) {
		var toi = null, tol = null;
		if(existsDefined(to)) {
			toi = document.getElementById("imgLarge" + to);
			tol = document.getElementById("lnkLarge" + to);
        }

		if(existsDefined(toi) && existsDefined(tol)) {
			var newsrc = toi.src;
			act.src = newsrc;
			
			if(existsDefined(prevLnk))
				prevLnk.rel = tol.rel;
			
			lnk.rel = tol.rel;
			lnk.href = tol.href;
			lnk.title = tol.title;
			
			prevLnk = tol;
			
			tol.rel = "";
			
		}
	}
}
function headerToggleClass(el) {
    var el = $(el);
    var con = el.next('.expandablePanelBody');
    if (el.hasClass('Collapsed')) {
        el.removeClass("Collapsed");
        con.slideDown();
    }
    else {
        el.addClass("Collapsed");
        con.slideUp();
    }
}
function getInt(val) {
    if (!isNaN(parseInt(val, 10)))
        return parseInt(val, 10);
    else
        return 0;
}
function getBrowserClass() {
    var s = "";
    s += $.browser.webkit ? "webkit" : "";
    s += $.browser.msie ? "ie" : "";
    s += $.browser.mozilla ? "mozilla" : "";
    s += $.browser.opera ? "opera" : "";
    if ($.browser.safari) {
        if (jQuery.support.checkOn) {
            s += "chrome";
        }
        else {
            s += "safari";
        }
    }
    s += " v" + getInt($.browser.version).toString();
    
    
    return s;
}
