﻿
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
//alert("Hi");
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}





function setWidth(id, width) {
	obj = MM_findObj(id);
	if(document.getElementById || document.all){//all the modern browsers
		obj.style.width = width;
	}
	else if(document.layers){//this is NS4
		obj.width = width;
	}  
}


function getWidth(id) {
	obj = MM_findObj(id);
	
	var divWidth;	
    if(obj.offsetWidth) { 
        divWidth = obj.offsetWidth; 
    } else if(obj.style.pixelWidth) { 
        divWidth = obj.style.pixelWidth; 
    } 
    return divWidth;
}


function setHeight(id, height) {
	obj = MM_findObj(id);
	if(document.getElementById || document.all){//all the modern browsers
		obj.style.height = height;
	}
	else if(document.layers){//this is NS4
		obj.height = height;
	}  
}



function getHeight(id) {
	obj = MM_findObj(id);
	
	var divHeight;
    if(obj.offsetHeight) { 
        divHeight = obj.offsetHeight; 
    } else if(obj.style.pixelHeight) { 
        divHeight = obj.style.pixelHeight; 
    } 
    return divHeight;
}

function toggleElements(show)
{
  var elms = document.getElementsByTagName('select');
  for (var e = 0; e < elms.length; e++) 
    setVis(elms[e].name, show, false);
};

function whichBrs() {
var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf("opera") != -1) return 'Opera';
if (agt.indexOf("staroffice") != -1) return 'Star Office';
if (agt.indexOf("webtv") != -1) return 'WebTV';
if (agt.indexOf("beonex") != -1) return 'Beonex';
if (agt.indexOf("chimera") != -1) return 'Chimera';
if (agt.indexOf("netpositive") != -1) return 'NetPositive';
if (agt.indexOf("phoenix") != -1) return 'Phoenix';
if (agt.indexOf("firefox") != -1) return 'Firefox';
if (agt.indexOf("safari") != -1) return 'Safari';
if (agt.indexOf("skipstone") != -1) return 'SkipStone';
if (agt.indexOf("msie") != -1) return 'Internet Explorer';
if (agt.indexOf("netscape") != -1) return 'Netscape';
if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
if (agt.indexOf('\/') != -1) {
if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
return navigator.userAgent.substr(0,agt.indexOf('\/'));}
else return 'Netscape';} else if (agt.indexOf(' ') != -1)
return navigator.userAgent.substr(0,agt.indexOf(' '));
else return navigator.userAgent;
}



function setVis(id, vis, displayNone) {
    if (id != '') {
        if (displayNone == undefined || (displayNone != true && displayNone != false)) {
            displayNone = true;
        }
	    obj = MM_findObj(id);
	    if (obj == undefined) {
	        return;
	    }
	    
	    if(obj.className.indexOf("PopUpWindowCenter") >= 0)
	    {
			//alert('Is A Popup ' + whichBrs())
	        if(whichBrs() != "Safari")
	        {
	            // Defined in Popup.js
	            //RottlundPopup.show(id);
	            RottlundPopUp(id);
	            return;
	        }
	        
	    }
	    
	    if(document.getElementById || document.all){//all the modern browsers
		    obj.style.visibility = vis ? "visible" : "hidden";
		    if (displayNone) {
		        obj.style.display = vis ? "" : "none";
		    }
	    }
	    else if(document.layers){//this is NS4
		    obj.visibility = vis ? "show" : "hide";
		    if (displayNone) {
    		    obj.display = vis ? "" : "hide";
            }
	    }  
	}
}

function showMetroTooltip(id, vis, e, displayNone){
    if (id != '') {
        if (displayNone == undefined || (displayNone != true && displayNone != false)) {
            displayNone = true;
        }
	    obj = MM_findObj(id);
	    if (obj == undefined) {
	        return;
	    }
	    var ev=(!e)?window.event:e;//IE:Moz
	    var posx;
	    var posy;
	    if (ev.pageX){//Moz
            posx=ev.pageX+20;
            posy=ev.pageY;
        }
        else if(ev.clientX){//IE
            posx=ev.clientX+20;
            posy=ev.clientY;
        }
	    obj.style.left = posx + "px";
	    obj.style.top = posy + "px";
	    if(document.getElementById || document.all){//all the modern browsers
		    obj.style.visibility = vis ? "visible" : "hidden";
		    if (displayNone) {
		        obj.style.display = vis ? "" : "none";
		    }
	    }
	    else if(document.layers){//this is NS4
		    obj.visibility = vis ? "show" : "hide";
		    if (displayNone) {
    		    obj.display = vis ? "" : "hide";
            }
	    }  
	}
}

function showPopupAtCursor(id, vis, e, displayNone){
    if (id != '') {
        if (displayNone == undefined || (displayNone != true && displayNone != false)) {
            displayNone = true;
        }
	    obj = MM_findObj(id);
	    if (obj == undefined) {
	        return;
	    }
	    var ev=(!e)?window.event:e;//IE:Moz
	    var posx;
	    var posy;
	    if (ev.pageX){//Moz
            posx=ev.pageX+20;
            posy=ev.pageY;
        }
        else if(ev.clientX){//IE
            posx=ev.clientX+20;
            posy=ev.clientY;
        }
	    obj.style.left = posx + "px";
	    obj.style.top = posy + "px";
	    if(document.getElementById || document.all){//all the modern browsers
	        obj.style.visibility = vis ? "visible" : "hidden";
		    if (displayNone) {
		        obj.style.display = vis ? "" : "none";
		    }
	    }
	    else if(document.layers){//this is NS4
		    obj.visibility = vis ? "show" : "hide";
		    if (displayNone) {
    		    obj.display = vis ? "" : "hide";
            }
	    }  
	}
}

function toggleMetroTooltip(id, e){
    showMetroTooltip(id, !getVis(id), e);
}


function getVis(id) {
	obj = MM_findObj(id);
	
	var vis = true;
	
	if(document.getElementById || document.all){//all the modern browsers
		if (obj.style.visibility == "hidden") {
		    vis = false;
		}
	}
	else if(document.layers){//this is NS4
		if (obj.visibility == "hide") {
		    vis = false;
		}
	}  
	return vis;
}

function toggleVis(id) {
	setVis(id, !getVis(id));
}

//Product detail page
function ShowTab(TabSectionName)
{
	HideAllTabs();
	var displayDiv;
	var tabDiv;
	displayDiv = 'div' + TabSectionName;
	tabDiv = displayDiv + 'Tabs';
	setVis(displayDiv, true);
	setVis(tabDiv, true);
}

function CommunityTabClick(ItemID)
{
	toggleVis('tab1_on_' + ItemID);
	toggleVis('tab2_on_' + ItemID);
	toggleVis('tab1_on_table_' + ItemID);
	toggleVis('tab2_on_table_' + ItemID);
}

function showPopup(id)
{
	setVis(id, true);
	
}


function GetElementById(id)
{
	if(typeof(id) == "object")
		return id;
		
	return MM_findObj(id);
}

function GetElementName(el)
{
	var sReturn = '';
	
	if(typeof(el.id)=='string')
		sReturn = el.id;

	if (el.type == "radio"  || (sReturn.length==0 && typeof(el.name)=='string'))
		sReturn = el.name;

	return sReturn;
}


/// <summary>
/// </summary>
function GetElementData(el)
{

	if(typeof(el) == "string")
		el = GetElementById(el);

	if(!el)
		return null;
		
	var sReturn = null;
	switch(el.type)
	{
		case 'radio':
			sReturn = '0';
			if(el.checked)
				sReturn = el.value;
			break;

		case 'checkbox':
			sReturn = '0';
			if (el.checked)
			{
				sReturn = '1';
				
				// FIX: Check to see if a value exists for each checkbox.
				// If not 0 or blank, then return the value instead of "1"
				// for items checked.
				if(el.value && el.value != "0" && el.value != "")
					sReturn = el.value;
			}
			break;
			
		case 'text':
		case 'textarea':
		case 'password':
		case 'hidden':
		case 'select-one':
			sReturn = el.value;
			break;
		case 'select-multiple':
			var aReturn = new Array();
			var elLen = el.length;
			var opt = el.options;
			for (i=0;i<elLen;i++)
			{
				if (opt[i].selected)
				{
					aReturn.push(opt[i].value + ',');
				}
			}
			
			sReturn = aReturn.join('');
			if (sReturn!=null && sReturn.charAt(sReturn.length-1)==',')
				sReturn = sReturn.substr(0, sReturn.length-1);
			break;
	}
	
	if (typeof(sReturn)=='undefined')
		return null;

	return escape(sReturn).replace(/\+/g,'%2B');
}

/**********************************************************************************************************
 <summary>
	GetFormData function returns data so that it can be posted via AJAX. Data posted via AJAX can
	be accessed from the Request.Form object on the server just like you normally would.
 </summary>

 <returns>string formatted call to AJAX API (name=value&name=value)</returns>
*********************************************************************************************************/
function GetFormData(formnum)
{
	var sReturn='';
	var objName='';
	var objValue='';
	var el;
	var i;
	var s;
	
	if(!formnum || typeof(formnum)=="undefined")
		formnum = 0;
		
	var elBase=document.forms[formnum].elements;
	var elLen =elBase.length;	
	var aReturn =new Array();
	 
	try
	{
	aReturn.push('<root>');
		for(i=0;i<elLen;i++)
		{
			el = elBase[i];		
			
			objName = GetElementName(el);	
			objValue = '';
			

			//exclude all .NET native controls, buttons and images
			if (objName.length>0 
					&& objName!='__VIEWSTATE' && objName!='__EVENTTARGET' && objName!='__EVENTARGUMENT' && objName!='\r\n__VIEWSTATE' && objName!='__EVENTVALIDATION'
					&& el.type!='submit' && el.type!='reset' && el.type!='image' && el.type!='button')
			{
				if(el.type == 'radio' && el.checked == false)
					continue;

				// Exclude disabled controls, to be consistent with standard HTML form posts and to
				// eliminate data for controls that aren't likely needed.
				if (el.isDisabled)  // Note: isDisabled will be true if the control or a parent element is disabled
					continue;

				objValue = GetElementData(el);

                if (objValue != "")
                {
                    // <v id="idval">asdfasdfasdf</v>
				    aReturn.push('<v id="' + objName + '">' + objValue + '</v>'); 
				}
			}
		}
			aReturn.push('</root>');

	}catch(e){alert('Error Getting Form Data:' + e.message);} 

	sReturn = aReturn.join('');

	if (sReturn.charAt(sReturn.length-1)=='&')
		sReturn = sReturn.substr(0, sReturn.length-1);
	
	return sReturn;
}


/*
<APAjax>
<Obj name='jscall'>setVisible('fldid')</Obj>
<Obj name='jsfile'>filename.js</Obj>
<Obj name="rightNavID" type="value">new value</Obj>
<Obj name="rightNavID" type="obj"><!CData[<table><tr><td>hello</td></tr></table>]</Obj>
</APAjax>


		_name = _nodes[i].getAttribute('name');
		_type = _nodes[i].getAttribute('type');
		_value = _nodes[i].text;
*/

function processAjaxResponse(xml)	// xml should be a XML Dom object
{
    var _node;
	var _nodes;
	var _rootnodename = 'APAjax/Obj';
	var _name = '';
	var _type = '';
	var _value = '';
	var _obj;
	var _errmsg = '';
	var _infomsg = '';

	_nodes = Ext.DomQuery.select('//APAjax/Obj', xml)

	for(var i = 0; i < _nodes.length; i++)
	{
	    _node = _nodes[i];
	    
		_name = _node.getAttribute('id');
		_value = ''
		
		var l = _node.childNodes.length;
		for(var x=0; x < l; )
		{
		    _value += _node.childNodes[x].nodeValue;
		    ++x;
		}
		    
		switch(_name)
		{
			case "jscall":
				try
				{
					eval(_value);
				}
				catch(e)
				{
					if(_errmsg != "")
						_errmsg += "<br/>";
					_errmsg += 'Error executing script: ' + _value + '\n' + e.message;
				}
				break;


			case "jsfile":
				try
				{
					_obj = document.createElement('script');
					_obj.type = 'text/javascript';
					_obj.src = _value;
					document.body.appendChild(_obj);
				}
				catch(e)
				{
					if(_errmsg != "")
						_errmsg += "<br/>";
					_errmsg += 'Error registering javascript file: ' + _value + '\n' + e.message;
				}
				break;


			case "showerror":
				if(_errmsg != "")
					_errmsg += "<br/>";
				_errmsg += _value;
				break;

			case "showmsg":
				if(_infomsg != "")
					_infomsg += "<br/>";
				_infomsg += _value;
				break;

			case "close":
				try
				{
					if (_infomsg != "")
					{
						ShowMessage(_infomsg);
						_infomsg = "";
					}
					CloseForm();
				}
				catch(e){}

				break;

			default:
				try
				{
					_type = _nodes[i].getAttribute('type');

					_obj = MM_findObj(_name);
					
					if (_obj && _type=='val')
					{
						_obj.value = _value;
					}
					else if (_obj && _type=='obj')
					{
						if (!_value)  _value = '';
						    
					    if(setOuterHTML(_obj, _value) == false)
					    {
							setInnerHTML(_obj, _value);
						}
					}
				}
				catch(e)
				{
					if(_errmsg != "")
						_errmsg += "<br>";
					_errmsg += 'Error setting/replacing: ' + _name + '\nwith: ' + _value + '\n' + e.message;
				}
				break;
		}
	}

	if(_errmsg != "")  ShowErrorPopup(_errmsg);

	if (_infomsg != "")  ShowMessage(_infomsg);
}

function ShowMessage(msg)
{
	msg = strReplace(msg, "<br>", "\n");
	alert(msg)
}

function ShowErrorPopup(msg)
{
	ShowMessage(msg);
}

function parseBool(str)
{
	if(!str)
		return null;
		
	switch(str)
	{
		case "0":
		case "false":
			return false;
		default:
			return true;
	}
	return true;
}

function SetElementValue(id, val)
{
	var obj, retValue;
	if(typeof(id) == "object")
		obj = id;
	else
		obj = MM_findObj(id);

	if(!obj)
		return false;
		
	if (obj.tagName == 'SPAN')
		obj.innerText = val;
	else if(obj.type == 'radio' || obj.type=="checkbox" )
		obj.checked = parseBool(val);
    else if (obj.length > 0 && obj[0].type == "radio")
    {
        for (var n=0; n< obj.length; n++)
        {
            if (obj[n].value == val)
            {
                obj[n].checked = true;
                break;
            }
        }
    }
	else if (obj.tagName != "SELECT")
		obj.value = val;
	else 
	{
		val = ('' + val).toLowerCase();  // handle numeric values in null along with strings.
		obj.selectedIndex = -1;

		var optLen = obj.options.length; 
		for (var n=0; n < optLen; n++) 
		{ 
			var opt = obj.options[n];
			if (opt.value.toLowerCase()==val || opt.text.toLowerCase()==val)
			{ 
				obj.selectedIndex = n; 
				break;
			}

		}
	}
	return true;
}


function isBluebox()
 {
    var str = 0;
    
    try {
    var query = window.location.search.substring(1);
    
    if(query != null && query.toLowerCase().indexOf("gentype=bluebox") >= 0)
        str = 1;    
    } catch(e) { 
        //alert("Error: " + e.message);
    }
    
    return str;
}

