// Pic protect is enabled
if(EnablePicProtect==true)
{
	window.onload = trap_images_mouse_events;
}

// Set Vertical Scroll position
window.onscroll = function SetSrollVpos()
{
	try
	{
		for(i=0; i<document.forms.length; i++)
		{
			try
			{
				document.forms[i].VerticalScrollPos.value=document.body.scrollTop;
			}
			catch(e)
			{
			}
		}
	}
	catch(e)
	{
	}
}

// Toggle productmenu - show/hide
function ToggleMenu(ParentCatID)
{
	try
	{
		var SubmenuTable = document.getElementById(ParentCatID);
		
		if(SubmenuTable.style.display=='')
		{
			SubmenuTable.style.display='none';
		}
		else
		{
			SubmenuTable.style.display='';
		}
	}
	catch(e)
	{
	}
}

function ScrollToSavedVPos(Vpos)
{
	try
	{
		if(navigator.userAgent.toLowerCase().indexOf("msie") == -1)
		{
			window.scroll(0,Vpos);
		}
		else
		{
			window.scroll(0,Vpos);
		}
	}
	catch(e)
	{
	}
}


function replace(string,text,by) {
	var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength) newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function formatAsMoney(mnt) {
	mnt -= 0;
	mnt = (Math.round(mnt*100))/100;
	return (mnt == Math.floor(mnt)) ? mnt + '.00' : ( (mnt*10 == Math.floor(mnt*10)) ? mnt + '0' : mnt);
}

function disable_right_click(e) 
{
	var browser = navigator.appName.substring ( 0, 9 );
	var event_number = 0;
	
	if (browser=="Microsoft")
		event_number = event.button;
	else if (browser=="Netscape")
		event_number = e.which;

	if ( event_number==2 || event_number==3 ) {
		alert (PicprotectMsg);
		return (false);
	}

	return (true);
}

function trap_images_mouse_events () {
if ( document.images ) {
	for (var pic=0; pic<document.images.length; pic++)
	document.images[pic].onmousedown = disable_right_click;
	}
}


var CanBuy = true;
function BuyProduct(thisform, MinBuyAmount, MaxBuyAmount,BundleMinBuy) {

	if (BundleMinBuy=='True') 
	{
		// MinBuyAmount in bundle mode
		if (parseInt(thisform.AMOUNT.value) % parseInt(MinBuyAmount) > 0)  
		{
			thisform.AMOUNT.value = MinBuyAmount;
			alert(MinBuyMsg + '( '+MinBuyAmount+' )')
			return (false);
		}
		
		if  (isNaN (parseInt(thisform.AMOUNT.value)))
		{
			thisform.AMOUNT.value = MinBuyAmount;
			alert(MinBuyMsg + '( '+MinBuyAmount+' )')
			return (false);
		}
	}
	else
	{
		// MinBuyAmount in normal mode
		
		if (parseInt(thisform.AMOUNT.value) < parseInt(MinBuyAmount)) 
		{
			thisform.AMOUNT.value = MinBuyAmount;
			alert(MinBuyMsg + '( '+MinBuyAmount+' )')
			return (false);
		}
		if  (isNaN (parseInt(thisform.AMOUNT.value)))
		{
			thisform.AMOUNT.value = MinBuyAmount;
			alert(MinBuyMsg + '( '+MinBuyAmount+' )')
			return (false);
		}
	}

	if (parseInt(MaxBuyAmount) > 0 ) {
		if (parseInt(thisform.AMOUNT.value) > parseInt(MaxBuyAmount)) {
			thisform.AMOUNT.value = MinBuyAmount;
			alert(MaxBuyMsg + ' ( '+MaxBuyAmount+' )')
			return (false);
		}
	}	 

	if (!CanBuy) 
	{
        alert(SelectVarMsg);
	}

	return (CanBuy);

}

function BuyRelatedProduct(thisform, MinBuyAmount, MaxBuyAmount, BundleMinBuy)
{

	if (BundleMinBuy=='True') 
	{
		// MinBuyAmount in bundle mode
		if (parseInt(thisform.amount.value) % parseInt(MinBuyAmount) > 0)  
		{
			thisform.amount.value = MinBuyAmount;
			alert(MinBuyMsg + '( '+MinBuyAmount+' )')
			return (false);
		}
	}
	else
	{
		// MinBuyAmount in normal mode
		if (parseInt(thisform.amount.value) < parseInt(MinBuyAmount)) 
		{
			thisform.amount.value = MinBuyAmount;
			alert(MinBuyMsg + '( '+MinBuyAmount+' )')
			return (false);
		}
	}

	if (parseInt(MaxBuyAmount) > 0 ) 
	{
		if (parseInt(thisform.amount.value) > parseInt(MaxBuyAmount)) 
		{
			thisform.amount.value = MinBuyAmount;
			alert(MaxBuyMsg + ' ( '+MaxBuyAmount+' )')
			return (false);
		}
	}	 

	return (true);

}

function SilentAjaxGetRequest(RequestPage)
{
	var objReq ;
    
    // Create XMLhttp object
    objReq = CreateXmlHttpObj();

    objReq.onreadystatechange = function() 
    {
	    if (objReq.readyState == 4)
	    {
		    // request completet
	    }
    };
	objReq.open("GET", RequestPage,false);
	objReq.send(null);
}


function SendRequest(RequestPage,ContentContainer,PostStr,ResponseReturnMode)
{
    var objReq ;

    // Create XMLhttp object
    objReq = CreateXmlHttpObj();

    // set the call back
    objReq.onreadystatechange = function() 
    {
	    if (objReq.readyState == 4)
	    {
			    ProcessResponse(objReq,ContentContainer,ResponseReturnMode);
	    }
    };
    objReq.open("POST", RequestPage,true);
    objReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    objReq.send(PostStr);
    
}

function ProcessResponse(objReq,ContentContainer,ResponseReturnMode)
{
  if(ResponseReturnMode==1)
  {
    ContentContainer.innerHTML = objReq.responseText;
  }
  if(ResponseReturnMode==2)
  {
   if(objReq.responseText != '')
   {
	alert(objReq.responseText);
   }
  }
  objReq = null;
}

function AddFavorite(ProductID,Amount)
{
  var poststr
   poststr = "ProductID=" + ProductID +
  "&amount=" + Amount +
  "&AddProduct=1" + 
  "&ShowAjaxResponse=1";   
  SendRequest('/shop/Favorites.asp','',poststr,2); 
}

function ChangeSortOrder(dropdown) {

    try {
        var sortfield = dropdown[dropdown.selectedIndex].value;
        SilentAjaxGetRequest('/shop/AjaxWrapper.asp?FC=changesortorder&SortField=' + sortfield);
        document.location.href = document.location.href;
    }
    catch (e) {
    }

}


function ChangeCurrency(cur) {
	var Url;
	var QSPrefix;
	
	try {
		if(DontUseFrames=='')
		{
			Url = parent.main.document.location.href;
		}
		if(DontUseFrames=='1')
		{
			Url = document.location.href;
		}
		
		if (Url.indexOf("?") == -1) {
			QSPrefix = "?";
		} else {
			QSPrefix = "&";
		}
		
		if(Keyword != '')
			{
			var urlTmp = Url.toLowerCase();
			if (urlTmp.indexOf("keyword") == -1) 
				{
				Url = Url +""+ QSPrefix +"Keyword="+ escape(Keyword);
				}
			}	

		if (Url.indexOf("?") == -1) {
			QSPrefix = "?";
		} else {
			QSPrefix = "&";
		}	
								
		if(Url.indexOf("ReloadBasket=1") == -1)
		{
			Url = Url +""+ QSPrefix +"ReloadBasket=1";
		}
		
		if(DontUseFrames=='')
		{
			parent.main.document.location.href = 'ChangeCurrency.asp?UpdateCur=' + cur + '&Url='+ escape(Url);
		}

		if(DontUseFrames=='1')
		{
		    SilentAjaxGetRequest('/shop/ChangeCurrency.asp?UpdateCur=' + cur);
			document.location.href = CurrencyReturnUrl;
		}
		

	} catch (e) {

		Url = 'basket.asp?RefreshAllPrices=1';
		parent.basket.document.location.href = 'ChangeCurrency.asp?UpdateCur=' + cur + '&Url='+ escape(Url);
	}	
}


function PopupPicture(title, img, iw, ih, ProtectMessage, prodID)
{
	PopupWindow = window.open('/shop/ImagePopup.asp?Title='+ title + '&Image=' + img +'&ProtectMessage=' + ProtectMessage ,'PopupImage'+ escape(prodID) +'','displayWindow,width=' + iw + ',height=' + ih + ',scrollbars=no,status=no');
}

function ShowBasket()
{
	if(DontUseFrames=='')
	{
		top.main.location.href=ShowBasketUrl;
	}
	
	if(DontUseFrames=='1')
	{
		document.location.href=ShowBasketUrl;
	}
}

function DetectBrowser()
{
	Uagent		= navigator.userAgent.toLowerCase();
	// Actions for firefox
	if(Uagent.indexOf("firefox") != -1)
	{
		// Fix browser bug causing 100% height on tables not to render correctly
		ProductMenuTableHeightFix();
	}
	
	// Copy main content HTML to print div layer
	GeneratePrintOutput();
}

function ProductMenuTableHeightFix()
{
	try
	{
		setTimeout("document.getElementById('ShopMainLayOutTable').style.height= document.body.clientHeight;",1000);
	}
	catch(e)
	{
	}
}

function GeneratePrintOutput()
{
	try
	
	{
		// Get HTML content from main TD
		var PrintContent =  document.getElementById('ContentContainer_DIV').innerHTML ;		
		
		// Rename ID and FORM tags on the print content HTML to advoid double occurance and generate js error
		PrintContent = PrintContent.replace(/name=/ig,"Xid="); 
		PrintContent = PrintContent.replace(/id=/ig,"Xid="); 
		PrintContent = PrintContent.replace(/<form/ig,"<Xform"); 
		
		// Write the HMTL content to the div layer
		document.getElementById('PrintContent_DIV').innerHTML = PrintContent;
	}
	catch(e)
	{
	}
}


function checkPhone(PhoneField,Event,Button,CheckSum) 
{

 var phone = PhoneField.value;	
 phoneRegex = /^\d\d\d\d\d\d\d\d$/;
 if( !phone.match( phoneRegex ) ) 
 {
	try{Button.disabled=true;}catch(e){}
 }
 else
 {
	try{Button.disabled=false;}catch(e){}
	
	// Do lookup on enter press
	if (Event.keyCode == 13) 
	{
		
		if(PhoneField.id=='invoicephone')
		{
		    KrakLookup('invoice', CheckSum);
		}
		
		if(PhoneField.id=='deliveryphone')
		{
		    KrakLookup('delivery', CheckSum);
		}
	}

 }
} 

function SegmentSelectorChange(SegmentSelector)
{
	try
	{
		var selectedSegment = SegmentSelector.options[SegmentSelector.selectedIndex].value;
		SegmentSelector.disabled=true;
		SelectSegment(selectedSegment)	
	}
	catch(e)
	{
	}
}

function ProductListVariantSelectorChange(VariantSelector)
{
	try
	{
		var selectedVariant = VariantSelector.options[VariantSelector.selectedIndex].value;
		VariantSelector.disabled=true;
		top.location.href=selectedVariant;	
	}
	catch(e)
	{
		VariantSelector.disabled=false;
	}
}


/*
**************************************************************
Looks up city from zipcode and returns it to input field
**************************************************************
*/
function CityLookUp(ZipCodeField,CityFieldID,CountryFieldID)
{

    try
    {
        var CountryField = document.getElementById(CountryFieldID)
        var CountryID = CountryField[CountryField.selectedIndex].value;
        var CityField = document.getElementById(CityFieldID)
        var ZipCode = ZipCodeField.value
        if(ZipCode.length==4)
        {
             
        // Url to ajaxwrapper page
            var RequestPage = '/shop/ajaxwrapper.asp?FC=GetCity&ZipCode=' + ZipCode + '&CountryID=' + CountryID;

        // Create XMLhttp object
        objReq = CreateXmlHttpObj();
            	
	    objReq.onreadystatechange = function() 
		    {
			    // Request data ready
			    if (objReq.readyState == 4)
			    {
                    CityField.value = objReq.responseText

			    }
		    };
	    objReq.open("GET", RequestPage,true);
	    objReq.send(null);
        }
        
    }
    catch(e) {
    }
}


/*
**************************************************************
Loads customer data from external data source into orderfields
**************************************************************
*/
function KrakLookup(AdressType,CheckSum)
{

	var objReq ;
	var phonenumber = "";
	var Adress = "";
	var Adress2 = "";
	var Name = "";
	var Zipcode = "";
	var City = "";
	var Phone = "";
	var Company = "";
	var CustomerType = "";
	var EAN = "";
	var CVR = "";
	var DeliverySuffix = "";
	var NotFound = "0";

	// Look up for invoice adress
	if(AdressType=='invoice'){try{phonenumber = document.getElementById('invoicephone').value;}catch(e){}}
	
	// Look up for delivery adress
	if(AdressType=='delivery')
	{
	DeliverySuffix = "l";
	try{phonenumber = document.getElementById('deliveryphone').value;}catch(e){}
	}
	
	// Url to Shop kraklookup wrapper page
	var RequestPage = '/shop/kraklookup.asp?phonenumber=' + phonenumber + '&CheckSum=' + CheckSum

	// Disable lookup button
	try{document.getElementById(DeliverySuffix+'kraklookupbtn').disabled=true;}catch(e){}

	// Create XMLhttp object
    objReq = CreateXmlHttpObj();

    objReq.onreadystatechange = function() {
        // Request data ready
        if (objReq.readyState == 4) {

            // Create xml dom document
            XmlDomDoc = objReq.responseXML

            // Parse xml response to local variables
            try { Adress = XmlDomDoc.getElementsByTagName('Adress').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { Adress2 = XmlDomDoc.getElementsByTagName('Adress2').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { Name = XmlDomDoc.getElementsByTagName('Name').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { Zipcode = XmlDomDoc.getElementsByTagName('ZipCode').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { City = XmlDomDoc.getElementsByTagName('City').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { Phone = XmlDomDoc.getElementsByTagName('Phone').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { Company = XmlDomDoc.getElementsByTagName('Company').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { CustomerType = XmlDomDoc.getElementsByTagName('CustomerType').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { EAN = XmlDomDoc.getElementsByTagName('EAN').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { CVR = XmlDomDoc.getElementsByTagName('CVR').item(0).childNodes.item(0).nodeValue; } catch (e) { }
            try { NotFound = XmlDomDoc.getElementsByTagName('CustomerNotFound').item(0).childNodes.item(0).nodeValue; } catch (e) { }

            // Insert values into order fields
            try { document.getElementById(DeliverySuffix + 'address').value = Adress; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'address2').value = Adress2; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'name').value = Name; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'zipcode').value = Zipcode; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'city').value = City; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'phone').value = Phone; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'cvrnr').value = CVR; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'ean').value = EAN; } catch (e) { }
            try { document.getElementById(DeliverySuffix + 'company').value = Company; } catch (e) { }

            // Select customer type
            if (AdressType == 'invoice') {
                try {
                    if (CustomerType == 1) { document.Orderstep1Form.CustTypeID.selectedIndex = 1; }
                    if (CustomerType == 0) { document.Orderstep1Form.CustTypeID.selectedIndex = 0; }
                    ToggleFields();
                }
                catch (e) {
                }
            }

            // Display customer not found text
            if (NotFound == 1) {
                try { document.getElementById('KrakLookUpNotFoundMsg').style.display = ''; } catch (e) { }
            }
            if (NotFound == 0) {
                try { document.getElementById('KrakLookUpNotFoundMsg').style.display = 'none'; } catch (e) { }
            }

            // Enable lookup button
            try { document.getElementById(DeliverySuffix + 'kraklookupbtn').disabled = false; } catch (e) { }

            // Clean up
            XmlDomDoc = null;
            objReq = null;

        }
    };
	objReq.open("GET", RequestPage,true);
	objReq.send(null);	
}

/*
******************************************************************
Loads customer delivery data from specified order into orderfields
******************************************************************
*/
function CustomerDeliveryInfoLookup(OrderID) {

    try {
        var objReq;
        var phonenumber = "";
        var Address = "";
        var Address2 = "";
        var Name = "";
        var Zipcode = "";
        var City = "";
        var Phone = "";
        var Company = "";
        var EAN = "";
        var Fax = "";
        var Email = "";
        var Country = "";

        // Url to Shop kraklookup wrapper page
        var RequestPage = '/shop/AjaxWrapper.asp?FC=getdelivertoinfo&OrderID=' + OrderID

        // Create XMLhttp object
        objReq = CreateXmlHttpObj();

        objReq.onreadystatechange = function() {
            // Request data ready
            if (objReq.readyState == 4) {

                // Create xml dom document
                XmlDomDoc = objReq.responseXML

                // Parse xml response to local variables
                try { Address = XmlDomDoc.getElementsByTagName('Address').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Address2 = XmlDomDoc.getElementsByTagName('Address2').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Name = XmlDomDoc.getElementsByTagName('Name').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Zipcode = XmlDomDoc.getElementsByTagName('ZipCode').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { City = XmlDomDoc.getElementsByTagName('City').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Phone = XmlDomDoc.getElementsByTagName('Phone').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Company = XmlDomDoc.getElementsByTagName('Company').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { CustomerType = XmlDomDoc.getElementsByTagName('CustomerType').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { EAN = XmlDomDoc.getElementsByTagName('EAN').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { CVR = XmlDomDoc.getElementsByTagName('CVR').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Email = XmlDomDoc.getElementsByTagName('Email').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Fax = XmlDomDoc.getElementsByTagName('Fax').item(0).childNodes.item(0).nodeValue; } catch (e) { }
                try { Country = XmlDomDoc.getElementsByTagName('Country').item(0).childNodes.item(0).nodeValue; } catch (e) { }


                // Insert values into order Delivery fields
                try { document.getElementById('laddress').value = Address; } catch (e) { }
                try { document.getElementById('laddress2').value = Address2; } catch (e) { }
                try { document.getElementById('lname').value = Name; } catch (e) { }
                try { document.getElementById('lcompany').value = Company; } catch (e) { }
                try { document.getElementById('lzipcode').value = Zipcode; } catch (e) { }
                try { document.getElementById('lcity').value = City; } catch (e) { }
                try { document.getElementById('lphone').value = Phone; } catch (e) { }
                try { document.getElementById('lcvrnr').value = CVR; } catch (e) { }
                try { document.getElementById('lean').value = EAN; } catch (e) { }
                try { document.getElementById('lfax').value = Fax; } catch (e) { }
                try { document.getElementById('lemail').value = Email; } catch (e) { }
                try { document.getElementById('lcompany').value = Company; } catch (e) { }

                // Select Delivery country
                try {
                    var countryselect = document.getElementById('lcountry');
                    for (i = 0; i < countryselect.options.length; i++) {
                        if (countryselect.options[i].innerHTML == Country) {
                            countryselect.options[i].selected = true;
                        }
                        else {
                            countryselect.options[i].selected = false;
                        }
                    }

                }
                catch (e) {}

                // Clean up
                XmlDomDoc = null;
                objReq = null;

            }
        };
        objReq.open("GET", RequestPage, true);
        objReq.send(null);
    }
    catch (e) {
    }   
}

/*
****************************************
Sets the active Segment and reloads page
****************************************
*/
function SelectSegment(SegmentID)
{
	var objReq ;
	var requestpage;

	if(SegmentID == "")
	{
		requestpage = '/shop/default.asp?ClearSegments=1'
	}
	else
	{
		requestpage = '/shop/default.asp?Segment='+SegmentID
	}

	// Create XMLhttp object
    objReq = CreateXmlHttpObj();
	
    objReq.onreadystatechange = function() 
    {
	    if (objReq.readyState == 4)
	    {
		    top.location.href= top.location.href;	
	    }
    };
	objReq.open("GET", requestpage,true);
	objReq.send(null);
}


/*
************************************************
Returns HTML content for pay and shipping method
************************************************
*/
function GetMethods(MethodType,ReqMethodID,ContentContainer,Debug,ServiceCOD)
{
    var objReq ;
    var requestpage;
    var ParamStr

    if(MethodType=='ShippingMethods') ParamStr = "&PayMethodID="+ReqMethodID;
    if(MethodType=='PayMethods') ParamStr = "&ShippingMethodID="+ReqMethodID;

    ParamStr = ParamStr + "&Debug=" + Debug
    
    requestpage = '/shop/order2.asp?GetMethods=' + MethodType + ParamStr

    // Create XMLhttp object
    objReq = CreateXmlHttpObj();

    objReq.onreadystatechange = function() {
        if (objReq.readyState == 4) {
            ContentContainer.innerHTML = objReq.responseText


            // Indicate that a paymethod using COD is selected - this will disable som shipping method services
            if (ServiceCOD != undefined) {
                CodPayMethodSelected(ServiceCOD)
            }

        }
    };
	objReq.open("GET", requestpage,true);
	objReq.send(null);

	

	//GLS Parcel shops
	if (MethodType == 'PayMethods') {
	    try {

	        var GlsParselShops_TR = document.getElementById('GLS_ParselShops_' + ReqMethodID);
	        
	        // Start by hiding all GLS parcel shops
	        try {
	            var ParselShopRows = document.getElementsByClassName('GLS_ParselShops_TR');
	            for (var i = ParselShopRows.length - 1; i >= 0; --i) {
	                ParselShopRows[i].style.display = 'none';
	            }
	        }
	        catch (e) {
	        }
             
            // Show parcels shops for the active selected shipping method
	        GlsParselShops_TR.style.display = '';
	    }
	    catch (e) {}
	}

}

/*
***************************************
Populates option select box with states
***************************************
*/
function GetStates(StatesDropdownID,CountryDropdownID)
{
	var objReq ;
	var countryID
	var stateID;
	var stateName;

    try
    {
        // Get the country and state option select objects
        var StatesDropDown = document.getElementById(StatesDropdownID);
        var CountryDropDown = document.getElementById(CountryDropdownID);
        var countryID = CountryDropDown[CountryDropDown.selectedIndex].value
        
	    // Url to ajaxwrapper wrapper page
	    var RequestPage = '/shop/ajaxwrapper.asp?FC=GetStates&CountryID=' +  countryID;

        // Create XMLhttp object
        objReq = CreateXmlHttpObj();
            	
	    objReq.onreadystatechange = function() 
		    {
			    // Request data ready
			    if (objReq.readyState == 4)
			    {
				    // Create xml dom document
				    XmlDomDoc = objReq.responseXML	
    				
    				// Select nodelist from xml dom document
				    var StatesNodeList = XmlDomDoc.getElementsByTagName("State")

				    // Clear states option select
				    StatesDropDown.options.length = 0;
    				
    				// Loop state nodelist
				    for (var i = 0; i < StatesNodeList.length; i++)
				    {
					    // Get state values state node
					    stateID = StatesNodeList[i].getElementsByTagName("ID")[0].childNodes[0].nodeValue;  
					    stateName = StatesNodeList[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue;
    												
					    // Insert options in states option select
					    StatesDropDown.options[i] = new Option(stateName,stateID);
				    }
    			
    				// Show the states option select if any active states exists, otherwise hide it
				    if(StatesDropDown.options.length==0)
				    {
				       StatesDropDown.style.display='none';
				    }
				    else
				    {
				      StatesDropDown.style.display='';
				    }
    				
				    // Clean up
				    XmlDomDoc = null;
				    objReq = null;

			    }
		    };
	    objReq.open("GET", RequestPage,true);
	    objReq.send(null);
	
	}
	catch(e)
	{
	}	
}

/*
************************
Creates a XMLhttp object
************************
*/
function CreateXmlHttpObj()
{
    var objReq;
    
    // for Mozilla, Firefox, Safari, and Netscape
    if (window.XMLHttpRequest) objReq = new XMLHttpRequest();

    // for Internet Explorer
    if (window.ActiveXObject) objReq = new ActiveXObject("microsoft.xmlhttp");
    
    return  objReq;
}

document.getElementsByClassName = function(cl) {
    var retnode = [];
    var myclass = new RegExp('\\b' + cl + '\\b');
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
        var classes = elem[i].className;
        if (myclass.test(classes)) retnode.push(elem[i]);
    }
    return retnode;
};


/*
************************
Adds overlay images to the specified list of images
************************
*/
function AddImageOverlay(targetImageArray,overlayImage) 
{

    try {
        
        // Write css style
        document.write("<style type='text/css'>");
        document.write(".specialoffer_watermark_div {");
        document.write("position:relative;");
        document.write("display:block;");
        document.write("}");
        document.write("img.specialoffer_watermark_img {");
        document.write("position: absolute;")
        document.write("top: 0px;");
        document.write(" left: 0px;");
        document.write("}");
        document.write("</style>");

        // Url's of the images to apply overlay to
        targetImageArray = targetImageArray.split(",");
        
        //Loop all images on the page and look for matches
        var images = document.getElementsByTagName('img');
        for (var i = 0; i < images.length; i++) {
            for (x in targetImageArray) {
                if (targetImageArray[x] != '') {
                    if (images[i].src.indexOf(encodeURI(targetImageArray[x])) > -1) {

                        // Create image used for special offer overlay
                        var overlayImg = document.createElement('img');
                        overlayImg.setAttribute('src', overlayImage);
                        overlayImg.setAttribute('class', 'specialoffer_watermark_img');
                        overlayImg.setAttribute('border', '0');

                        // Create div container used to store product image and overlayimage
                        var overlayDiv = document.createElement('div');
                        overlayDiv.setAttribute('class', 'specialoffer_watermark_div');
                        overlayDiv.appendChild(images[i].cloneNode(true));
                        overlayDiv.appendChild(overlayImg);

                        // For browsers that support the outerHTML
                        if (images[i].outerHTML) {
                            images[i].outerHTML = "<div class='specialoffer_watermark_div'>" + overlayDiv.innerHTML + "</div>";
                        }

                        // For FireFox
                        else {

                            images[i].parentNode.replaceChild(overlayDiv, images[i]);
                        }
                    }
                }
            }
        }
    }
    catch (e) {
    }
}



