//---------------------------------------------------------
function left(str, n)
{
    if (n <= 0) return "";
    else if (n > String(str).length)  return str;
    else return String(str).substring(0,n);
}

//---------------------------------------------------------
function GoToPage(url)
{
	window.location=url;
}

//---------------------------------------------------------
function BackLink()
{
	window.history.back();
}

//---------------------------------------------------------
// trims strings of white space front and rear
function trim(s)
{
	s = s.replace(/^\s*/g,"").replace(/\s*$/g,"");
	return s;
}

//---------------------------------------------------------
// returns true if input string contains html, otherwise false
function ContainsHTML(input)
{
  var re = new RegExp(/<[a-zA-Z\/][^>]*>/);
  if (input.match(re) != null)
   return true;
  else
   return false;
 }


//---------------------------------------------------------
// limits the textarea pThis to nStrLen characters
function TextAreaLimitor(pThis, nStrLen)
{          
  var nLen = pThis.value.length;
  if(nLen > nStrLen)
  {	           	    
    // Set value equal to nStrLen characters.
    pThis.value = pThis.value.substring(0,nStrLen);
    return false;
  }        	  
  return true;        	  	  
}

function MakeValidFileName(str)
{
	return str.replace(/\?|\:|\&|\/|\\|\*|\>|\<|\||\"/g, "-");
}

//-----------------------------------------
function openFriendlyName(objAnchor)
{
	var url = objAnchor.getAttribute('FriendlyURL').replace(/ /g, '%20') + objAnchor.getAttribute('FriendlyName').replace(/ /g, '%20');
  window.open(url);

	return false;
}

//-----------------------------------------
function printPage()
{
    try{window.print();}
    catch(e){}
}

//--------------------------------------------------------------
function urlEscape(sVal) {
	var sRet = sVal;
	var re;

    //ENCODE THE % FIRST!!!!
    re = /\%/gi; //(percentage)
	sRet = sRet.replace(re, "%25");
	
     re = /\:/gi; //(colon)
	sRet = sRet.replace(re, "%3A");
     re = /\;/gi; //(semi-colon)
	sRet = sRet.replace(re, "%3B");
     re = /\//gi; //(forward slash)
	sRet = sRet.replace(re, "%2F");
     re = /\\/gi; //(backslash)
	sRet = sRet.replace(re, "%5C");
     re = /\!/gi; //(exclamation)
	sRet = sRet.replace(re, "%21");
     re = /\"/gi; //(inverted comma)
	sRet = sRet.replace(re, "%22");
     re = /\#/gi; //(hash)
	sRet = sRet.replace(re, "%23");
     re = /\?/gi; //(question mark)
	sRet = sRet.replace(re, "%3F");
     re = /\=/gi; //(equals)
	sRet = sRet.replace(re, "%3D");
     re = /\@/; //(at)
	sRet = sRet.replace(re, "%40");
     re = /\>/gi; //(greater than)
	sRet = sRet.replace(re, "%3E");
     re = /\</gi; //(less than)
	sRet = sRet.replace(re, "%3C");
     re = /\$/gi; //(dollar)
	sRet = sRet.replace(re, "%24");
     re = /\&/gi; //(ampersand)
	sRet = sRet.replace(re, "%26");
     re = /\[/gi;
	sRet = sRet.replace(re, "%5B");
     re = /\]/gi; 
	sRet = sRet.replace(re, "%5D");
     re = /\~/gi; //(tilde)
	sRet = sRet.replace(re, "%7E");
     re = /\^/gi;
	sRet = sRet.replace(re, "%5E");
     re = /\`/gi; 
	sRet = sRet.replace(re, "%60");
     re = /\{/gi; //(opening bracket)
	sRet = sRet.replace(re, "%7B");
     re = /\}/gi; //(closing bracket)
	sRet = sRet.replace(re, "%7D");
    re = /\|/gi; //(pipe)
	sRet = sRet.replace(re, "%7C");
	
	return(sRet);
}
	
//-----------------------------------------
function emailPage(subject, body)
{
    if(subject==null)
    {
        var title=document.getElementsByTagName("title")[0];

        if(title!=null)
            subject=title.text;
    }

    if(body==null || body=="")
    {
        body=window.location.href;
    }

	try
	{
		var oApp = new ActiveXObject("Outlook.Application");
		var oItem = oApp.CreateItem(0); // New email message
		oItem.Subject=subject;
		oItem.Body=body;
		oItem.Display();
	}
	catch(e)
	{
	    var win=window.open("mailto:?subject=" + urlEscape(subject) + "&body=" + urlEscape(body));
		try{win.close();}catch(e){}
	}
}

//-----------------------------------------
function openEmail(objAnchor)
{
	var attachment = objAnchor.getAttribute('attachment').replace(/ /g, '%20');
	var subject = objAnchor.getAttribute('email_subject');
	var body = objAnchor.getAttribute('email_body');
	try
	{
		var oApp = new ActiveXObject("Outlook.Application");
		var oItem = oApp.CreateItem(0); // New email message
		oItem.Subject=subject;
		oItem.Body=body;
		oItem.Attachments.Add(attachment);
		oItem.Display();
	}
	catch(e)
	{
	    var win=window.open("mailto:?subject=" + urlEscape(subject) + "&body=" + urlEscape(body));
			try{win.close();}catch(e){}
	}
	return false;
}

//-----------------------------------------
function ctag(url, psid)
{
	if(trim(url)!=''&&trim(psid)!='')
	{
		var img=new Image;
		img.src=url+'&PS='+psid;
	}	
}

//-----------------------------------------
function CSDetail_ChangeVersion(obj)
{
	var url="./CreativeSpecDetail.aspx?CreativeSpecID="+obj.options[obj.selectedIndex].getAttribute("CreativeSpecID")+"&CID="+obj.options[obj.selectedIndex].getAttribute("CountryID")+"&LID="+obj.options[obj.selectedIndex].getAttribute("LanguageID");
	GoToPage(url);
}

//-----------------------------------------
// Will call LoadFunction once the entire page is loaded
// - LoadFunction - string - function to be called when the page is loaded
//-----------------------------------------
function CrossBrowser_AttachLoadEvent(LoadFunction)
{
	try
	{
		if (window.addEventListener)
		{
			window.addEventListener('load', LoadFunction , false);
			//eval("window.addEventListener('load', " + LoadFunction + ", false)");
		}
		else
		{
			window.attachEvent('onload', LoadFunction);
			//eval("window.attachEvent('onload', " + LoadFunction + ")");
		}
	}
	catch(e){;}	
}

//-----------------------------------------
// The array to hold all XMLHTTP Requests
// Exclusively used by CrossBrowser_GetAsyncXML function
//-----------------------------------------
var CrossBrowser_XMLRequests = new Array();

//-----------------------------------------
// Custom XML Request object to hold other data
// Exclusively used by CrossBrowser_GetAsyncXML function
// - XMLRequest - object = the xmlhttp request object
// - SuccessFunction - string = the function to call when the request is complete
// - SuccessFunctionParam - object = the parameter to pass to the SuccessFunction (can be null or an array)
//-----------------------------------------
function CrossBrowser_XMLRequest(XMLRequest, SuccessFunction, SuccessFunctionParam)
{
	this.XMLRequest = XMLRequest;
	this.SuccessFunction = SuccessFunction;
	this.SuccessFunctionParam = SuccessFunctionParam;
	this.SuccessFunctionCalled = false;	
}

//-----------------------------------------
// Send a cross browser, asynchronous, xmlhttp call.
// URL - string = the url of the xml to fetch
// SuccessFunction - string = the funciton to call when the xml data is ready
// SuccessFunctionParam - object = the paramater to pass to the SuccessFunction - optional
//-----------------------------------------
function CrossBrowser_GetAsyncXML(URL, SuccessFunction, SuccessFunctionParam) 
{
	try
	{
		var XMLRequest = false;
		// branch for native XMLHttpRequest object
		if (window.XMLHttpRequest)
		{
			XMLRequest = new XMLHttpRequest();
			XMLRequest.onreadystatechange = CrossBrowser_XMLRequestReady;
			XMLRequest.open("GET", trim(URL), true);
			XMLRequest.send(null);  
		}
		// branch for IE/Windows ActiveX version
		else if (window.ActiveXObject)
		{
			XMLRequest = new ActiveXObject("Microsoft.XMLHTTP");
			if (XMLRequest) {
				XMLRequest.onreadystatechange = CrossBrowser_XMLRequestReady;
				XMLRequest.open("GET", trim(URL), true);
				XMLRequest.send();
			}
		}
		if (XMLRequest)
		{
			var oCrossBrowser_XMLRequest = new CrossBrowser_XMLRequest(XMLRequest, SuccessFunction, SuccessFunctionParam);
			CrossBrowser_XMLRequests.push(oCrossBrowser_XMLRequest);
		}
	}
	catch(e)
	{ ; }	
}

//-----------------------------------------
// Called when an XMLHTTP request has had a state change
// Exclusively used by CrossBrowser_GetAsyncXML function
// When ready, calls the SuccessFunction with the SuccessFunctionParam
//-----------------------------------------
function CrossBrowser_XMLRequestReady() 
{
	try
	{
		for (var i = 0; i < CrossBrowser_XMLRequests.length; i++)
		{	
			if (CrossBrowser_XMLRequests[i].XMLRequest.readyState == 4) // ready
			{
				if (CrossBrowser_XMLRequests[i].XMLRequest.status == 200) // no error
				{
					if (!CrossBrowser_XMLRequests[i].SuccessFunctionCalled)
					{
						CrossBrowser_XMLRequests[i].SuccessFunctionCalled = true;
						eval(CrossBrowser_XMLRequests[i].SuccessFunction + "(CrossBrowser_XMLRequests[i].XMLRequest.responseXML, CrossBrowser_XMLRequests[i].SuccessFunctionParam)");
					}
				}
			}
		}
	}
	catch(e)
	{ ; }	
}

//-----------------------------------------
function CrossBrowser_GetXML(URL, PostXML) 
{
	var xmlhttp=CrossBrowser_GetXMLHTTPRequest(trim(URL), PostXML);
	if(xmlhttp)
		return xmlhttp.responseXML;
	else
		return null;
}
//-----------------------------------------
function CrossBrowser_GetHTML(URL, PostXML) 
{
	var xmlhttp=CrossBrowser_GetXMLHTTPRequest(trim(URL), PostXML);

	if(xmlhttp)
		return xmlhttp.responseText;
	else
		return null;
}
//-----------------------------------------
function CrossBrowser_GetXMLHTTPRequest(URL, PostXML) 
{
	try
	{
		var XMLRequest = false;
		var PostGet="Get";

		if(PostXML!=null)
			PostGet="POST";
	
		// branch for native XMLHttpRequest object
		if (window.XMLHttpRequest)
		{
			XMLRequest = new XMLHttpRequest();
			//XMLRequest.onreadystatechange = CrossBrowser_XMLRequestReady;
			XMLRequest.open(PostGet, trim(URL), false);
			XMLRequest.send(PostXML);  
		}
		// branch for IE/Windows ActiveX version
		else if (window.ActiveXObject)
		{
			XMLRequest = new ActiveXObject("Microsoft.XMLHTTP");
			if (XMLRequest) {
				//XMLRequest.onreadystatechange = CrossBrowser_XMLRequestReady;
				XMLRequest.open(PostGet, trim(URL), false);
				XMLRequest.send(PostXML);
			}
		}
		//alert(XMLRequest+"\n"+XMLRequest.status+"\n"+XMLRequest.statusText+"\n"+XMLRequest.responseText+"\n\n"+PostXML)
		return XMLRequest;
	}
	catch(e)
	{return null; }	
}

//-----------------------------------------
function ProductGrid_ExpandCollapse(p_ProductID) 
{
	var imgMinus=document.getElementById("imgMinus_"+p_ProductID);
	var imgPlus=document.getElementById("imgPlus_"+p_ProductID);
	var trExpand=document.getElementById("trExpand_"+p_ProductID)	
	if(imgMinus.style.display=='none')
	{
		imgMinus.style.display='';
		imgPlus.style.display='none';
		trExpand.style.display='';
	}
	else
	{
		imgMinus.style.display='none';
		imgPlus.style.display='';
		trExpand.style.display='none';
	}
	return false;
}

//---------------------------------------------------------
function openPopupWindow(url,height,width,top,left)
{
	if(height==null || isNaN(height) || height=="" || height=="0")
		height=300;
	if(width==null || isNaN(width) || width=="" || width=="0")
		width=400;
	if(top==null || isNaN(top) || top=="")
		top=0;
	if(left==null || isNaN(left) || left=="")
		left=0;
	var win = window.open(url,'WWAdvertising',"top=" + top + "left=" + left + "height=" + height + ",width=" + width + ",status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes");
}


//-----------------------------------------------------------------------------------------------------
// BEGIN - SEARCH_PRODUCT_CS Search Section Control
//-----------------------------------------------------------------------------------------------------
function SEARCH_Mode_OnClick(sMode)
{
	var PRODUCT_CS_SEARCH = document.getElementById("PRODUCT_CS_SEARCH");
	
	if(sMode == PRODUCT_CS_SEARCH.getAttribute("Mode")) return; // didn't change
	
	PRODUCT_CS_SEARCH.setAttribute("Mode", sMode);

	var SEARCH_PRODUCT_BasicDiv = document.getElementById("SEARCH_PRODUCT_BasicDiv");
	var SEARCH_CS_BasicDiv = document.getElementById("SEARCH_CS_BasicDiv");
	
	var SEARCH_PRODUCT_AdvancedFindOptionsDiv = document.getElementById("SEARCH_PRODUCT_AdvancedFindOptionsDiv");
	var SEARCH_CS_AdvancedFindOptionsDiv = document.getElementById("SEARCH_CS_AdvancedFindOptionsDiv");
	
	if(sMode == "CS")
	{
		if(SEARCH_CS_BasicDiv.getAttribute("Loaded") != "1")
		{
			SEARCH_CS_BasicDiv.innerHTML = CrossBrowser_GetHTML(SEARCH_CS_BasicDiv.getAttribute("urlBasicHTML"), null);
			SEARCH_CS_BasicDiv.setAttribute("Loaded", "1");
			SEARCH_CS_ProductType_onchange();
		}
	}
	else
	{
		if(SEARCH_PRODUCT_BasicDiv.getAttribute("Loaded") != "1")
		{
			SEARCH_PRODUCT_BasicDiv.innerHTML = CrossBrowser_GetHTML(SEARCH_PRODUCT_BasicDiv.getAttribute("urlBasicHTML"), null);
			SEARCH_PRODUCT_BasicDiv.setAttribute("Loaded", "1");
			SEARCH_PRODUCT_Property_onchange();
		}
	}
	
	if(document.getElementById('SEARCH_AdvancedFindOptions').value == "1") SEARCH_ShowAdvancedFindOptions(true);

    var SEARCH_PRODUCT_AdvancedFindOptionsDiv = document.getElementById("SEARCH_PRODUCT_AdvancedFindOptionsDiv");
    if(SEARCH_PRODUCT_AdvancedFindOptionsDiv)
    {
	    SEARCH_PRODUCT_AdvancedFindOptionsDiv.style.display = (sMode == "PRODUCT" ? "" : "none");
	    SEARCH_PRODUCT_AdvancedFindOptionsDiv.disabled = !(sMode == "PRODUCT");
    }
    
    var SEARCH_CS_AdvancedFindOptionsDiv = document.getElementById("SEARCH_CS_AdvancedFindOptionsDiv");
    if(SEARCH_CS_AdvancedFindOptionsDiv)
    {
	    SEARCH_CS_AdvancedFindOptionsDiv.style.display = (sMode == "PRODUCT" ? "none" : "");
	    SEARCH_CS_AdvancedFindOptionsDiv.disabled = !(sMode == "CS");
    }

	document.getElementById("SEARCH_PRODUCT_BasicDiv").style.display = (sMode == "PRODUCT" ? "" : "none");
	document.getElementById("SEARCH_PRODUCT_BasicDiv").disabled = !(sMode == "PRODUCT");

	document.getElementById("SEARCH_CS_BasicDiv").style.display = (sMode == "PRODUCT" ? "none" : "");
	document.getElementById("SEARCH_CS_BasicDiv").disabled = !(sMode == "CS");
}

///////////////////////// SEARCH_CS
//////////// CS OnChange Events
function SEARCH_CS_ProductType_onchange()
{
	var SEARCH_CS_ProductType = document.getElementById("SEARCH_CS_ProductType");
	var SEARCH_CS_Dimensions = document.getElementById("SEARCH_CS_Dimensions");
	var aryDimensions = SEARCH_CS_ProductType.options[SEARCH_CS_ProductType.selectedIndex].getAttribute("Dimensions").split(",");
	
	var sDimensions_Selected = SEARCH_CS_Dimensions.value;

	SEARCH_CS_Dimensions.options.length = 0;

	var oOpt = document.createElement("OPTION");
	oOpt.value = "";
	oOpt.text = SEARCH_CS_Dimensions.getAttribute("AllOptionText");

    try{SEARCH_CS_Dimensions.options.add(oOpt);}
    catch(e){SEARCH_CS_Dimensions.add(oOpt);}

	for(var i=0; i<aryDimensions.length; i++)
	{
		oOpt = document.createElement("OPTION");
		oOpt.value = aryDimensions[i];
		oOpt.text = (aryDimensions[i] == "OTHER" ? SEARCH_CS_Dimensions.getAttribute("DIMENSIONS_OTHERTEXT") : aryDimensions[i]);

        try{SEARCH_CS_Dimensions.options.add(oOpt);}
        catch(e){SEARCH_CS_Dimensions.add(oOpt);}

		if(sDimensions_Selected == aryDimensions[i]) oOpt.selected = true;
	}
	SEARCH_CS_Dimensions_onchange();
}

function SEARCH_CS_FileType_MSN_onchange()
{
	SEARCH_CS_FileType_ThirdParty_Generate(SEARCH_CS_GetDynamicSelectBoxXML("FileType_ThirdParty"));
}

function SEARCH_CS_Dimensions_onchange()
{
	if(document.getElementById("SEARCH_AdvancedFindOptions").value == "0" || !document.getElementById("SEARCH_CS_FileType_MSN")) return;

	SEARCH_CS_FileType_MSN_Generate(SEARCH_CS_GetDynamicSelectBoxXML("FileType_MSN"));
}

//////////// CS Generate Functions
function SEARCH_CS_FileType_MSN_Generate(xml)
{
	SEARCH_SelectBox_Generate(document.getElementById("SEARCH_CS_FileType_MSN"), xml.documentElement.getAttribute("FileType_MSN").split(","));
	
	SEARCH_CS_FileType_ThirdParty_Generate(xml);
}

function SEARCH_CS_FileType_ThirdParty_Generate(xml)
{
	SEARCH_SelectBox_Generate(document.getElementById("SEARCH_CS_FileType_ThirdParty"), xml.documentElement.getAttribute("FileType_ThirdParty").split(","));
}

//////////// CS Util
function SEARCH_CS_GetDynamicSelectBoxXML(sGetBox)
{
	var sURL = document.getElementById("SEARCH_CS_AdvancedFindOptionsDiv").getAttribute("urlSearch_CS_DynamicSelectBoxes");
	sURL += "ProductTypeID=" + document.getElementById("SEARCH_CS_ProductType").value;
	sURL += "&Dimensions=" + document.getElementById("SEARCH_CS_Dimensions").value;
	sURL += "&FileTypeID_MSN=" + document.getElementById("SEARCH_CS_FileType_MSN").value;
	sURL += "&FileTypeID_ThirdParty=" + document.getElementById("SEARCH_CS_FileType_ThirdParty").value;
	sURL += "&GetBox=" + sGetBox;
	
	return CrossBrowser_GetXML(sURL, null);
}

///////////////////////// SEARCH_PRODUCT
function SEARCH_PRODUCT_Property_onchange()
{
	var SEARCH_PRODUCT_Property = document.getElementById("SEARCH_PRODUCT_Property");
	var optProperty = SEARCH_PRODUCT_Property.options[SEARCH_PRODUCT_Property.selectedIndex];

	SEARCH_SelectBox_Generate(document.getElementById("SEARCH_PRODUCT_ProductType"), optProperty.getAttribute("PTIDs").split(","));
	SEARCH_PRODUCT_ProductType_onchange();
}

//////////// PRODUCT OnChange Events
function SEARCH_PRODUCT_ProductType_onchange()
{
	if(document.getElementById("SEARCH_AdvancedFindOptions").value == "0" || !document.getElementById("SEARCH_PRODUCT_Dimensions")) return;

	SEARCH_PRODUCT_Dimensions_Generate(SEARCH_PRODUCT_GetDynamicSelectBoxXML("DIMENSIONS"));
}

function SEARCH_PRODUCT_Dimensions_onchange()
{
	SEARCH_PRODUCT_CS_Standard_Generate(SEARCH_PRODUCT_GetDynamicSelectBoxXML("CS_STANDARD"));
}

//////////// PRODUCT Generate Functions
function SEARCH_PRODUCT_Dimensions_Generate(xml)
{
	var SEARCH_PRODUCT_Dimensions = document.getElementById("SEARCH_PRODUCT_Dimensions");
	var sDimensions_Selected = SEARCH_PRODUCT_Dimensions.value;

	SEARCH_PRODUCT_Dimensions.options.length = 0;

	var oOpt = document.createElement("OPTION");
	oOpt.value = "";
	oOpt.text = SEARCH_PRODUCT_Dimensions.getAttribute("AllOptionText");

    try{SEARCH_PRODUCT_Dimensions.options.add(oOpt);}
    catch(e){SEARCH_PRODUCT_Dimensions.add(oOpt);}

	var aryDimensions = xml.documentElement.getAttribute("Dimensions").split(",");
	for(var i=0; i<aryDimensions.length; i++)
	{
		oOpt = document.createElement("OPTION");
		oOpt.value = (aryDimensions[i] == "" ? "OTHER" : aryDimensions[i]);
		oOpt.text = (aryDimensions[i] == "" ? SEARCH_PRODUCT_Dimensions.getAttribute("OtherOptionText") : aryDimensions[i]);

        try{SEARCH_PRODUCT_Dimensions.options.add(oOpt);}
        catch(e){SEARCH_PRODUCT_Dimensions.add(oOpt);}
        
		if(sDimensions_Selected == (aryDimensions[i] == "" ? "OTHER" : aryDimensions[i])) oOpt.selected = true;
	}
	SEARCH_PRODUCT_CS_Standard_Generate(xml);
}

function SEARCH_PRODUCT_CS_Standard_Generate(xml)
{
	SEARCH_SelectBox_Generate(document.getElementById("SEARCH_PRODUCT_CS_Standard"), xml.documentElement.getAttribute("CS_STANDARD").split(","));
	SEARCH_PRODUCT_CS_MSN_Generate(xml);
}

function SEARCH_PRODUCT_CS_MSN_Generate(xml)
{
	SEARCH_SelectBox_Generate(document.getElementById("SEARCH_PRODUCT_CS_MSN"), xml.documentElement.getAttribute("CS_MSN").split(","));
	SEARCH_PRODUCT_CS_THIRDPARTY_Generate(xml)
}

function SEARCH_PRODUCT_CS_THIRDPARTY_Generate(xml)
{
	SEARCH_SelectBox_Generate(document.getElementById("SEARCH_PRODUCT_CS_ThirdParty"), xml.documentElement.getAttribute("CS_THIRDPARTY").split(","));
}

//////////// PRODUCT Util
function SEARCH_PRODUCT_GetDynamicSelectBoxXML(sGetBox)
{
	var sURL = document.getElementById("SEARCH_PRODUCT_AdvancedFindOptionsDiv").getAttribute("urlSearch_Product_DynamicSelectBoxes");

	sURL += "ProductTypeID=" + document.getElementById("SEARCH_PRODUCT_ProductType").value;
	sURL += "&Dimensions=" + document.getElementById("SEARCH_PRODUCT_Dimensions").value;
	sURL += "&CSID_Standard=" + document.getElementById("SEARCH_PRODUCT_CS_Standard").value;
	sURL += "&CSID_MSN=" + document.getElementById("SEARCH_PRODUCT_CS_MSN").value;
	sURL += "&GetBox=" + sGetBox;

    var arySEARCH_PRODUCT_Property = document.getElementById("SEARCH_PRODUCT_Property").value.split("_");
    if(arySEARCH_PRODUCT_Property.length == 2)
    {
        var id = arySEARCH_PRODUCT_Property[1];
        switch(arySEARCH_PRODUCT_Property[0].toUpperCase())
        {
            case "P":
                sURL += "&PropertyID=" + id;
                break;
            case "S":
                sURL += "&SubpropertyID=" + id;
                break;
        }
    }
	
	return CrossBrowser_GetXML(sURL, null);
}

///////////////////////// COMMON
function SEARCH_ShowAdvancedFindOptions(bExpand)
{
	var SEARCH_PRODUCT_AdvancedFindOptionsDiv = document.getElementById('SEARCH_PRODUCT_AdvancedFindOptionsDiv');
	var PRODUCT_CS_SEARCH = document.getElementById('PRODUCT_CS_SEARCH');

	document.getElementById('SEARCH_AdvancedFindOptions').value = (bExpand ? "1" : "0");

	if(bExpand)
	{
		if(PRODUCT_CS_SEARCH.getAttribute("Mode") == "PRODUCT" && SEARCH_PRODUCT_AdvancedFindOptionsDiv.getAttribute("Loaded") != "1")
		{
			SEARCH_PRODUCT_AdvancedFindOptionsDiv.innerHTML = CrossBrowser_GetHTML(SEARCH_PRODUCT_AdvancedFindOptionsDiv.getAttribute("urlAdvancedHTML"), null);
			SEARCH_PRODUCT_AdvancedFindOptionsDiv.setAttribute("Loaded", "1");
			SEARCH_PRODUCT_ProductType_onchange();
		}

		if(PRODUCT_CS_SEARCH.getAttribute("Mode") == "CS" && SEARCH_CS_AdvancedFindOptionsDiv.getAttribute("Loaded") != "1")
		{
			SEARCH_CS_AdvancedFindOptionsDiv.innerHTML = CrossBrowser_GetHTML(trim(SEARCH_CS_AdvancedFindOptionsDiv.getAttribute("urlAdvancedHTML")), null);
			SEARCH_CS_AdvancedFindOptionsDiv.setAttribute("Loaded", "1");
			SEARCH_CS_Dimensions_onchange();
		}
	}

	SEARCH_AdvancedFindOptionsDiv.style.display = (bExpand ? "" : "none");
}

///////////////////////// COMMON Util
function SEARCH_SelectBox_Generate(oSlt, aryIDs)
{
	var sSelectedValue = oSlt.value;
	var sAllOptionText = oSlt.getAttribute("AllOptionText");
	var oOpt;
	
	oSlt.options.length = 0;

	if(sAllOptionText != null && sAllOptionText != "")
	{
		oOpt = document.createElement("OPTION");
		oOpt.value = "0";
		oOpt.text = sAllOptionText;
		try{oSlt.options.add(oOpt);}
		catch(e){oSlt.add(oOpt);}
	}

	if(aryIDs != null)
	{
		for(var i=0; i<aryIDs.length; i++)
		{
			if(aryIDs[i] != "")
			{
				oOpt = document.createElement("OPTION");
				oOpt.value = aryIDs[i];
				oOpt.text = oSlt.getAttribute("Name_ID" + aryIDs[i]);
		        try{oSlt.options.add(oOpt);}
		        catch(e){oSlt.add(oOpt);}
				if(sSelectedValue == aryIDs[i]) oOpt.selected = true;
			}
		}
	}
}
//-----------------------------------------------------------------------------------------------------
// END - SEARCH_PRODUCT_CS Search Section Control
//-----------------------------------------------------------------------------------------------------

//-----------------------------------------
function Demo_CategoryID_onchange(obj)
{
	var Demo_CategoryID=document.getElementById("Demo_CategoryID");
	var Demo_ItemID=document.getElementById("Demo_ItemID");
	SEARCH_SelectBox_Generate(Demo_ItemID, Demo_CategoryID.options[Demo_CategoryID.selectedIndex].getAttribute("ItemIDs").split(","));
}

//-----------------------------------------
function Demo_MarketID_onclick(obj)
{
	var objs=document.getElementsByName(obj.getAttribute("name"));
	var objAll=document.getElementById("Demo_MarketID0");
	if(obj.getAttribute("id")==objAll.getAttribute("id"))
	{
		if(obj.checked)
		{
			for(var i=0;i<objs.length;i++)
			{
				if(objs[i].getAttribute("id")!=objAll.getAttribute("id"))
					objs[i].checked=false;
			}
		}
		else
			obj.checked=true;
	}
	else
	{
		var AllChecked=true;
		var AllUnChecked=true;
		for(var i=0;i<objs.length;i++)
		{
			if(objs[i].getAttribute("id")!=objAll.getAttribute("id"))
			{
				if(objs[i].checked)
					AllUnChecked=false;
				else
					AllChecked=false;
			}	
		}
		if(AllUnChecked||AllChecked)
			objAll.checked=true;
		else
			objAll.checked=false;
	}

	if(objAll.checked)	
	{
		for(var i=0;i<objs.length;i++)
		{
			if(objs[i].getAttribute("id")!=objAll.getAttribute("id"))
			{
				objs[i].checked=false;
			}
		}
	}
}

//-----------------------------------------
// The Omniture functions have been moved to the s_code.aspx file.
// The below provides dummy stubs if the Omniture code does not
// get included on the page.  
if(typeof(DoOmnitureCustomLink) == 'undefined') {
    DoOmnitureCustomLink = new Function();
}

if(typeof(DoOmnitureWebSearchKeywordCustomLink) == 'undefined') {
    DoOmnitureCustomLink = new Function();
}

//-----------------------------------------
function ShowCreative(iCreativeID)
{
    openPopupWindow('./pages/CreativeShowcaseCreative.aspx?CreativeID=' + iCreativeID+"&PageID="+CurrentPageID,780,780);
}

//-----------------------------------------
function cookie_create(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

//-----------------------------------------
function cookie_read(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var 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 cookie_erase(name) {
	cookie_create(name,"",-1);
}

//-----------------------------------------
function Omniture_NavigationFramework_Get()
{
    var cookieName="Omniture_NavigationFramework";
    var cookieValue=cookie_read(cookieName);
    cookie_erase(cookieName);
    var obj = new Object();
    if(cookieValue!=null)
    {
        var cookieValueArray=cookieValue.split(',');
        obj.type=cookieValueArray[0];
        obj.value=cookieValueArray[1];
    }
    return obj;
}

//-----------------------------------------
function Omniture_NavigationFramework_Set(type,category,value)
{
    var cookieName="Omniture_NavigationFramework";
    var cookieValue=type.replace(/:/gi, "").replace(/;/gi, "").replace(/,/gi, "")+","+category+":"+value.replace(/:/gi, "").replace(/;/gi, "").replace(/,/gi, "");
    cookie_create(cookieName,cookieValue,1);
}

//-----------------------------------------
var FlashImageIndex=0;
function FlashRender(obj)
{
    var flashsrc=obj.getAttribute("flashsrc");
    if(flashsrc!='')
    {
        var height=obj.style.height;
        var width=obj.style.width;

        var parentobj=obj.parentNode;
        var newobj=document.createElement("span");
        FlashImageIndex++;
        newobj.id="FlashObject"+FlashImageIndex;
        newobj.name=newobj.id;
        parentobj.replaceChild(newobj, obj);

	    var swfObject = new SWFObject(flashsrc, "base", width, height, "8", "#FFFFFF", true);
	    swfObject.addParam("quality", "high");
	    swfObject.addParam("wmode", "transparent");
	    swfObject.addParam("menu", "false");
	    swfObject.addParam("swLiveConnect", "true");
	    swfObject.addParam("allowScriptAccess", "sameDomain");
	    swfObject.write(newobj.id);
	}
}
