function toggleModelHelpWidget(oPanel,oTrigger)
{
    var vPanel = document.getElementById(oPanel);
    vPanel.style.display = (vPanel.style.display != 'none' ? 'none' : '');
    var vTrigger = document.getElementById(oTrigger);

    if (vPanel.style.display == 'none') {
        document.getElementById('toggle').className = 'toggle-on';
        document.getElementById('toggle1').className = 'widget-color-off';
        vPanel.style.display == ''; }
    else {
        document.getElementById('toggle').className = 'toggle-off';
        document.getElementById('toggle1').className = 'widget-color';
        vPanel.style.display == '';
            };
    
}

function toggleToolTipDefinition(oElt, bShow)
{
	var ipos = findPosition( oElt );
	var LEFT_PAD = 2;
	var iPosLeft = ipos[0] + oElt.offsetWidth + LEFT_PAD;
	var iPosTop =  ipos[1];
	var oDiv = document.getElementById(oElt.id + 'Span');
	if(oDiv != null)
	{
		if((parseInt(iPosLeft) + parseInt(oDiv.style.width) + 25) > parseInt(document.body.clientWidth))
		{
			oDiv.style.width = (parseInt(document.body.clientWidth) - parseInt(iPosLeft) - 25) + 'px';
		}
		oDiv.style.left = iPosLeft;
		oDiv.style.top = iPosTop;
		oDiv.style.display = bShow ? '' : 'none';
	}
}

function findPosition( oLink )
{
	if( oLink.offsetParent )
	{
		for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) 
		{ 
			posX += oLink.offsetLeft; 
			posY += oLink.offsetTop;
		} 
		return [ posX, posY ];
	}
	else
	{ 
		return [ oLink.x, oLink.y ];
	}
}

function showPopUp(url, name, features)
{
    var popUpWindow = window.open(url, name, features);
    popUpWindow.focus();
}

function clearonclick(thisfield) {
	{
		thisfield.value = "";
	}
}

// useage - onclick="clickclear(this, 'Sometext')"
function clickclear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}

// useage - onblur="clickrecall(this,'Sometext')"
function clickrecall(thisfield, defaulttext) {
	if (thisfield.value == "") {
		thisfield.value = defaulttext;
	}
}

// Shipping Billing File Functions
function toggleBillingAddressForm(pShow)
{
    var vBillingAddressHtmlTableRow = document.getElementById('BillingInformationHtmlTable')
    
    if (pShow)
    {
        vBillingAddressHtmlTableRow.style.display = 'block';
        var vForm;
		if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) 
		{
			vForm = document.Form1;
        }
		else 
		{
			vForm = document.forms["Form1"];
		}
        
        copyShippingToBilling(vForm, true);
    }
    else
    {
        vBillingAddressHtmlTableRow.style.display = 'none';
    }
}

// Shipping Form Toggle - Checkout version
function toggleShippingAddressForm()
{
    //var radioButtons = document.getElementsByName('rblShippingAddress');
    var vShippingAddressTable = document.getElementById('ShippingForm');
    
    if (!document.Form1.rblShippingAddress[0].checked)
    {
        vShippingAddressTable.style.display = '';
    }
    else
    {
        vShippingAddressTable.style.display = 'none';
    }
}

function toggleCalculateTaxButton()
{
    var city;
    var province;
    var zip;
    var toggleValue;
    var imgbtnTax;
    var taxMessageDiv;
    
    if (document.Form1.rblShippingAddress[0].checked)
    {
        city = document.getElementById('txtCity').value;
        province = document.getElementById('ddlProvince').selectedIndex;
        zip = document.getElementById('txtZip').value;
    }
    else
    {
        city = document.getElementById('txtShippingCity').value;
        province = document.getElementById('ddlShippingProvince').selectedIndex;
        zip = document.getElementById('txtShippingZip').value;
    }
    
    city = trim(city, null);
    zip = trim(zip, null);
    
    toggleValue = !((city.length > 0) && (zip.length > 0) && (province != 0));

    imgbtnTax = document.getElementById('imgbtnTax');
    taxMessageDiv = document.getElementById('CalculateMsgDiv');
 
    
    if(toggleValue)
    {
        imgbtnTax.disabled = true;
        
        if(imgbtnTax.src.indexOf("CalculateTotal.gif") > -1)
        {
            imgbtnTax.src = imgbtnTax.src.replace("CalculateTotal.gif","CalculateTotal_inactive.gif");
        }
        taxMessageDiv.style.display = 'block';
    }
    else
    {
        imgbtnTax.disabled = false;
        
        if(imgbtnTax.src.indexOf("CalculateTotal_inactive.gif") > -1)
        {
            imgbtnTax.src = imgbtnTax.src.replace("CalculateTotal_inactive.gif","CalculateTotal.gif");
        }
        
        taxMessageDiv.style.display = 'none';
    }
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function copyShippingToBilling(pForm, pOverwrite)
{
    var cShippingPrefix = 'Shipping';
    var cBillingPrefix = 'Billing';
    
    for(var i = 0; i < pForm.elements.length; i++)
    {
        vElement = pForm.elements[i];
        if (vElement.id.indexOf(cShippingPrefix) == 0)
        {
            var vBillElement = document.getElementById(vElement.id.replace(cShippingPrefix, cBillingPrefix));
            switch(vElement.type)
            {
                case 'text' :
                {
                    if (pOverwrite)
                    {
                        vBillElement.value = vElement.value;
                    }
                    else
                    {
                        if (vBillElement.value == "")
                        {
                            vBillElement.value = vElement.value;
                        }
                    }
                    break;
                }
                case 'select-one' :
                {
                    if (pOverwrite)
                    {
                        vBillElement.value = vElement.value;
                    }
                    else
                    {
                        if (vBillElement.length > 1)
                        {
                            if (vBillElement.selectedIndex < 1)
                            {
                                vBillElement.selectedIndex = vElement.selectedIndex;
                            }
                        }
                        else
                        {
                            vBillElement.selectedIndex = vElement.selectedIndex;
                        }
                    }
                    break;
                }
            }
        }
    }
}
    
function showBillingInfo()
{
	var vForm;
	var vBillingAddressHtmlTableRow = document.getElementById('BillingInformationHtmlTable')
	
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) 
	{
		vForm = document.Form1;
    }
	else 
	{
		vForm = document.forms["Form1"];
	}
	
	if(vForm.BillingSameAsShippingCheckBox.checked)  
	{
		vBillingAddressHtmlTableRow.style.display = 'none';  
	}
	else
	{
			vBillingAddressHtmlTableRow.style.display = 'block';
	}
	
}

function processKeypress(pEvent, pButtonID)
{ 
	var vButton = document.getElementById(pButtonID); 
	if (typeof vButton == 'object')
	{ 
		var vKeyCode = -1;
		
		if (window.navigator.appName.toLowerCase().indexOf('microsoft') > -1)
		{ 
			vKeyCode = window.event.keyCode;
		}
		else 
		{
			vKeyCode = pEvent.keyCode;
		}

		if (vKeyCode == 13)
		{ 
			vButton.click(); 
			return false; 
		} 
	}
}

// Overlay pop over msg boxes
function togglePopOver(divID, position) {

    document.getElementById('MsgBoxDiv').innerHTML = document.getElementById(divID).innerHTML;
    
    var elementID = "MsgBoxDiv";
    var divs = document.getElementsByTagName("div");
    var selects = document.getElementsByTagName("select");
    for(var i=0; i<divs.length;i++){
        if(divs[i].className == "popUpDiv" && divs[i].id != elementID){
            divs[i].style.display="none";
        }
    }
    if(document.getElementById(elementID)){
        var popObj = document.getElementById(elementID);
        popObj.style.top = getScrollHeight() + "px";
        popObj.style.left = "0px";
        popObj.style.display = (popObj.style.display == "block")?"none":"block";
        var appVer = navigator.appVersion;
        if(navigator.appVersion.indexOf("MSIE 6") > 0) {
            var selects = document.getElementsByTagName("select");
            if(selects.length>0){
                for(var i=0; i< selects.length; i++){
                        ((popObj.style.display == "block"))? selects[i].style.display="none":selects[i].style.display="block";
                }
            }
        }
    }
}

function closePopOver(){
    document.getElementById('MsgBoxDiv').style.display='none';
    if(navigator.appVersion.indexOf("MSIE 6") > 0) {
        var selects = document.getElementsByTagName("select");
        if(selects.length>0){
            for(var i=0; i< selects.length; i++){
                selects[i].style.display="";
            }
        }
    }
}

function hidePopOver(e){
    var target = (e && e.target) || (event && event.srcElement);
    var node = target;
    if((target.getAttribute("onClick")&& target.getAttribute("onClick").toString().indexOf("togglePopOver") > -1)){
        return;
    }
    while(node.parentNode){
        if(node.className == "popUpDiv"){
            return;
        }
        node=node.parentNode;
    }
    if(target.className != "popUpDiv" && target.parentNode.className != "popUpDiv"){
        var divs = document.getElementsByTagName("div");
        for(var i=0; i<divs.length;i++){
            if(divs[i].className == "popUpDiv"){
                divs[i].style.display="none";
            }
        }
        if(document.getElementById("ctl02_BestBrandDropDownList")){
            document.getElementById("ctl02_BestBrandDropDownList").style.display = "block";
        }
    }
    var appVer = navigator.appVersion;
    if(navigator.appVersion.indexOf("MSIE 6") > 0) {
        var selects = document.getElementsByTagName("select");
        if(selects.length>0){
            for(var i=0; i< selects.length; i++){
               selects[i].style.display="block";
            }
        }
    }
}

function getScrollHeight()
{
   var h = window.pageYOffset ||
           document.body.scrollTop ||
           document.documentElement.scrollTop;
           
   return h ? h : 0;
}

document.onclick=hidePopOver;

// on demand help msg load
function onDemandMsgLoad(url, callbackFunction)
{
    this.bindFunction = function (caller, object) {
        return function() {
            return caller.apply(object, new Array(object));
        }
    }
    this.stateChange = function (object) {
        if (this.request.readyState==4) {
            this.callbackFunction(this.request.responseText);
        }
    }
    this.getRequest = function() {
        if (window.ActiveXObject)
            return new ActiveXObject('Microsoft.XMLHTTP');
        else if (window.XMLHttpRequest)
            return new XMLHttpRequest();
        else
            return false;
    }
    if (arguments[2])
        this.postBody = arguments[2];
    else 
        this.postBody="";
    this.callbackFunction=callbackFunction;
    this.url=url;   
    this.request = this.getRequest();
    if(this.request) {
        this.request.onreadystatechange = this.bindFunction(this.stateChange, this);
        if (this.postBody!="") {
            this.request.open("POST", url, true);
            this.request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            this.request.setRequestHeader('Connection', 'close');
        } else {
            this.request.open("GET", url, true);
        }
        this.request.send(this.postBody);
    }
}

function appendHTML(xmlString)
{
    document.getElementById('MsgBoxDiv').innerHTML = xmlString;
}
function setXMLObj(jsonString)
{
    categoriesObj = eval('(' + jsonString + ')');
}

function modelHelpMsgScroll(target, url){
    if(typeof(categoriesObj) != "object" ){
        onDemandMsgLoad(url,setXMLObj);
        window.setTimeout('modelHelpMsgScroll("'+target+'","'+url+'")',700);
        return;
    }
    var name = eval("categoriesObj."+target+"XML[0].name");
    var imagePath = eval("categoriesObj."+target+"XML[0].Image");
    document.getElementById("ModelHelpDiv").innerHTML="<table width='100%'><tr><td width='40%'><span style='font-size:12pt; font-weight:bold;'>"+name+"</span></td><td align='left'><span style='font-size:10pt; font-weight:bold; padding-left:80px;'>Tags can typically be found:</span></td></tr></table><br>"+"<img src='"+imagePath+"' alt='"+name+"'/>";
    document.getElementById("ModelHelpDivInit").style.display = "none";
}
function scrollTop(){
        var top = document.getElementById("top");
        top.scrollIntoView(true);
}
