function PageOnNightly(start, limit, arrival, departDate, city, miles)
{
	LoadNightlyResults(start, limit, arrival, departDate, city, miles)
}
			
function PageOnWeekly( start, limit, arrival, departDate, city, miles, zipCode )
{
	LoadWeeklyResults(start, limit, arrival, departDate, city, miles, zipCode)
}

function GetHTTPSFolderPath(folder, strFile)
{
	strTest = document.location.pathname
	arrTest = strTest.split("/")

	arrTest[arrTest.length-2] = folder
	arrTest[arrTest.length-1] = strFile
	strTest = "https://" +window.location.hostname +arrTest.join("/")
	
	return strTest
}

function GetHTTPFolderPath(folder, strFile)
{
	strTest = document.location.pathname
	arrTest = strTest.split("/")

	arrTest[arrTest.length-2] = folder
	arrTest[arrTest.length-1] = strFile
	strTest = "http://" +window.location.hostname +arrTest.join("/")
	
	return strTest
}

function bookPackage()
{
var strBooking = ""

	with (document.forms[0])
	{
		a = bookPackage.arguments;
		
		packageId.value = a[0];
		resortId.value = a[1];
		numGuests.value = a[2];
		// + 1
		unittypename.value = a[3];
		arrTest = a[4];
		depTest = a[5];
		
		bookingType.value = a[6];
		
		if (!testDates2(arrTest, depTest, document.forms[0].arrival.value, document.forms[0].departdate.value) && 1 == 2)
		{
			alert("Arrival and/or departure dates have been changed. Click the Search Button to refresh the data.")
		}
		else
		{
			strConcat = "";
			
			document.forms[0].arrival.value = a[4]
			document.forms[0].departdate.value = a[5]
			
			for (var i=7; i<a.length; i++)
			{
				strBooking = strBooking +strConcat +a[i]
				strConcat = ","
			}
			reservationString.value = strBooking
			
			strUrlPrefix = document.forms[0].urlPrefix.value

			strPath = strUrlPrefix +"/packages/adSelectPackage.asp"
	
			action = strPath
			
			submit()
		}
	}
}

function LoadNightlyResults()
{									
	var start = 1
	var limit = 20
	
	
	var category = document.forms[0].hdnCategoryId.value
	
	if (LoadNightlyResults.arguments.length == 0)
	{
	    //load arrival and departdates from the query string
		var arrival = queryString("arrival")
		var departDate = queryString("departdate")
		
		var cityZip = document.forms[0].ucSearch_RadComboBox1_value.value
		alertDebug("cityZip lnr:" +cityZip)
		var miles = document.forms[0].ucSearch_txtMiles.value
	
		var city = ""
		var zip = ""
	
		city = document.forms[0].hdnSearchCity.value
		zip = document.forms[0].hdnSearchPostalCode.value
			
	}
	
	if (LoadNightlyResults.arguments.length == 2)
	{
		start = LoadNightlyResults.arguments[0]
		limit = LoadNightlyResults.arguments[1]
		
		var arrival = queryString("arrival")
		var departDate = queryString("departdate")
		
		var cityZip = document.forms[0].ucSearch_RadComboBox1_value.value
		alertDebug("cityZip lnr:" +cityZip)
		var miles = document.forms[0].ucSearch_txtMiles.value
	
		var city = ""
		var zip = ""
	
		arrCityZip = cityZip.split("--")
		city = Text.trim(arrCityZip[0])
	
		if (arrCityZip.length > 1)
			zip = Text.trim(arrCityZip[1])
	}
	
	if (LoadNightlyResults.arguments.length == 6)
	{
		start = LoadNightlyResults.arguments[0]
		limit = LoadNightlyResults.arguments[1]
		arrival = LoadNightlyResults.arguments[2]
		departDate = LoadNightlyResults.arguments[3]
		city = LoadNightlyResults.arguments[4]
		miles = LoadNightlyResults.arguments[5]
	}
	
	var strHTML = ''
	strHTML += "<table width='760' height='200' align='center'><tr><td align='center'>"
	strHTML += "<br> <br> <object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' width='608' height='272' VIEWASTEXT>"
	strHTML += "<param name=movie value='images/PROCESSING_STACKED.swf'><param name=quality value=high>"
	strHTML += "<embed src='images/PROCESSING_STACKED.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='608' height='272'> "
	strHTML += "</embed> </object>"
	strHTML += "</td></tr></table>"
	
	clientID = 0
	membersID = document.forms[0].hdnMembersId.value
	agentID = document.forms[0].hdnAgentId.value
		
	Gpr.ResorTime.Internet.Mw.AjaxRequests.GetResultsNightly(arrival, departDate, city, miles, start, limit, membersID, clientID, agentID, category, LoadNightlyResults_CallBack);
	
}
			
function LoadWeeklyResults()
{
	
	var region = "0"
						
	var start = 1
	var limit = 20

	var region = document.getElementById("hdnSearchRegion").value
	
	if (LoadWeeklyResults.arguments.length == 0)
	{	
	    // load arrival and departdates from the querystring	
		var arrival = queryString("arrival")
		var departDate = queryString("departdate")
		
		var cityZip = document.forms[0].ucSearch_RadComboBox1_value.value
		var miles = document.forms[0].ucSearch_txtMiles.value
		
		var city = ""
		var zip = ""
				
		city = document.forms[0].hdnSearchCity.value
		zip = document.forms[0].hdnSearchPostalCode.value
	}
	
	if (LoadWeeklyResults.arguments.length == 2)
	{
		start = LoadWeeklyResults.arguments[0]
		limit = LoadWeeklyResults.arguments[0]
	
		var arrival = queryString("arrival")
		var departDate = queryString("departdate")
		
		var cityZip = document.forms[0].ucSearch_RadComboBox1_value.value
		var miles = document.forms[0].ucSearch_txtMiles.value
		
		var city = ""
		var zip = ""
		
		arrCityZip = cityZip.split("--")
		city = Text.trim(arrCityZip[0])
	
		if (arrCityZip.length > 1)
			zip = Text.trim(arrCityZip[1])
	}
	
	if (LoadWeeklyResults.arguments.length == 7)
	{
		start = LoadWeeklyResults.arguments[0]
		limit = LoadWeeklyResults.arguments[1]
		var arrival = LoadWeeklyResults.arguments[2]
		var departDate = LoadWeeklyResults.arguments[3]
		var city = LoadWeeklyResults.arguments[4]
		var miles = LoadWeeklyResults.arguments[5]
		var zip = LoadWeeklyResults.arguments[6]
	}

	var strHTML = ''
	strHTML += "<table width='760' height='200' align='center'><tr><td align='center'>"
	strHTML += "<br> <br> <object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0' width='608' height='272' VIEWASTEXT>"
	strHTML += "<param name=movie value='images/PROCESSING_STACKED.swf'><param name=quality value=high>"
	strHTML += "<embed src='images/PROCESSING_STACKED.swf' quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width='608' height='272'> "
	strHTML += "</embed> </object>"
	strHTML += "</td></tr></table>"
	
	clientID = 0
	membersID = document.forms[0].hdnMembersId.value
	agentID = document.forms[0].hdnAgentId.value
	
	Gpr.ResorTime.Internet.Mw.AjaxRequests.GetResultsWeekly(arrival, departDate, city, zip, miles, start, limit, region, clientID, membersID, agentID, LoadWeeklyResults_CallBack);
    
}

function LoadPackageResults()
{
	var intResult = 0;
	
	// get the arrival and departDate values from the querystring
	var arrival = queryString("arrival")
	var departDate = queryString("departdate")
	
	
	var cityZip = document.forms[0].ucSearch_RadComboBox1_value.value
	alertDebug("cityZip:" +cityZip)
	var miles = document.forms[0].ucSearch_txtMiles.value
	
	var city = ""
	var zip = ""
	
	city = document.forms[0].hdnSearchCity.value
	zip = document.forms[0].hdnSearchPostalCode.value
	
	guests = document.getElementById("hdnSearchGuests").value
	if (guests < 1) guests = 1
	
	clientID = 0
	membersID = document.forms[0].hdnMembersId.value
	agentID = document.forms[0].hdnAgentId.value
		
	Gpr.ResorTime.Internet.Mw.AjaxRequests.GetResultsPackages(arrival, departDate, city, miles, guests, clientID, membersID, agentID, LoadPackageResults_CallBack);	
}

function getIdValue(searchString, searchedId)
{
	var result = ""
	
	pattern = 'id="' +searchedId +'" value="(.*?)"'
	var re = new RegExp(pattern)
	
	if (searchString.match(pattern))
	{
		m = re.exec(searchString)
		if (m != null)
			result = m[1]
	}
	
	return result
}

function LoadNightlyResults_CallBack(response)
{
	//if the server side code threw an exception
	if (response.error != null)
	{
		alert("error:" +response.error);
		updateTabText('linkSection0', 'Nightly Rentals  (0)')
		divSearchResults.innerHTML = "<span class='searchResultsWarning'>No Availability Found. Try a different Search Criteria.</span>"
		divSearchResults.height = "200px"
		divSearchResults.className = "text"
		
		return;
	}
	
	divSearchResults.innerHTML = response.value
		
	// update the tab with the resort search count
	searchCount = getIdValue(response.value, "totalResortsNightly")
		
}

function LoadWeeklyResults_CallBack(response)
{

    divSearchWeekly.innerHTML = "sdfsfdsf";
    
	//if the server side code threw an exception
	if (response.error != null)
	{
		alert("error on weekly search:" +response.error);
		updateTabText('linkSection0', 'Weekly Rentals  (0)')
		
		divSearchWeekly.innerHTML = "<span class='searchResultsWarning'>No Availability Found. Try a different Search Criteria.</span>"
		divSearchWeekly.height = "200px"
		divSearchWeekly.className = "text"
		
		return;
	}

	divSearchWeekly.innerHTML = response.value

	// update the tab with the resort search count					
	searchCount = getIdValue(response.value, "totalResortsWeekly")
		
	if (searchCount.length == "") searchCount =	0
}

function LoadPackageResults_CallBack(response)
{
	//if the server side code threw an exception
	if (response.error != null)
	{
		alert("error on package search:" +response.error);
		updateTabText('linkSection2', 'Packages  (0)')
		
		divSearchPackages.innerHTML = "<span class='searchResultsWarning'>No Availability Found. Try a different Search Criteria.</span>"
		divSearchPackages.height = "200px"
		divSearchPackages.className = "text"
		
		return;
	}

	divSearchPackages.innerHTML = response.value
		
	// update the tab with the resort search count
	searchCount = getIdValue(response.value, "totalResortsPackages")
}
			
function CreateBookingForm( id , method , url )
{
	var form = document.createElement( "form" );
	if( form )
	{
		form.id = id;
		form.name = id;
		form.method = method;
		form.action = url;
		document.documentElement.appendChild( form );
	}
	
	return form;
}

function CreateInputControl( id , type , value )
{
	var ctl = document.createElement( "input" );
	if( ctl )
	{
		ctl.id = id;
		ctl.name = id;
		ctl.type = type;
		ctl.value = value;
	}
	
	return ctl;
}
function AddControlToForm( form , control )
{
	if( form && control ){ form.appendChild( control ); }
}

function bookAgent()
{
    try
    {
        var strBooking = "";


        var objForm = document.forms[0];
        
        var hdnMemberId = document.getElementById( "memberID" );
        
	    if ( hdnMemberId.value.length == 0 )
	    {
		    hdnMemberId.value = 0;
	    }
	    
	    args = bookAgent.arguments;

	    document.getElementById( "resortId" ).value = args[0];
	    document.getElementById( "unittypename" ).value = args[1];
	    document.getElementById( "arrival" ).value = args[2];
	    document.getElementById( "departdate" ).value = args[3];
	    document.getElementById( "bookingType" ).value = args[4];
		
	    var iStartingIndex = 5;
	    
	    for (var i=iStartingIndex; i<args.length; i++)
	    {
		    strBooking += ( ( i == iStartingIndex ) ? "" : "," ) + args[i];
	    }
	    document.getElementById( "reservationString" ).value = strBooking;

        // Post to the HTTPS page as indicated by the hidden input, defined within web.config
        var oFormActionUrl = document.getElementById( "formActionUrl" );
        if ( oFormActionUrl != null )
        {
    	    objForm.action = oFormActionUrl.value;
        }
        else
        {
    	    objForm.action = document.getElementById( "urlPrefix" ).value + "/admin/adSelectResort.asp";
        }
	    objForm.submit();
  
    }
    catch (err)
    {
        alert( "Error occurred: " + err.toString() );
    }
}

function bookAgent2()
{
    try
    {
        var strBooking = "";


        var objForm = document.forms[0];
        
        var hdnMemberId = document.getElementById( "memberID" );
        
	    if ( hdnMemberId.value.length == 0 )
	    {
		    hdnMemberId.value = 0;
	    }
	    
	    args = bookAgent2.arguments;

	    document.getElementById( "resortId" ).value = args[0];
	    document.getElementById( "unittypename" ).value = args[1];
	    document.getElementById( "arrival" ).value = args[2];
	    document.getElementById( "departdate" ).value = args[3];
	    document.getElementById( "bookingType" ).value = args[4];
		
	    var iStartingIndex = 5;
	    
	    for (var i=iStartingIndex; i<args.length; i++)
	    {
		    strBooking += ( ( i == iStartingIndex ) ? "" : "," ) + args[i];
	    }
	    document.getElementById( "reservationString" ).value = strBooking;

        // Post to the HTTPS page as indicated by the hidden input, defined within web.config
        var oFormActionUrl = document.getElementById( "formActionUrl" );
        if ( oFormActionUrl != null )
        {
    	    objForm.action = oFormActionUrl.value;
        }
        else
        {
    	    objForm.action = document.getElementById( "urlPrefix" ).value + "/admin/adSelectResort.asp";
        }
	    objForm.submit();
  
    }
    catch (err)
    {
        alert( "Error occurred: " + err.toString() );
    }
}


function bookGuest( formName, resortId , unitTypeName , arrivalDate , departureDate ,totalCost,  daysSelected, memberId )
{            
    if (document.forms[formName].urlPrefix)
    {
	    urlPrefix = document.forms[formName].urlPrefix.value
	}
		
	var form = CreateBookingForm( "bookingFormPost" , "POST" , urlPrefix +"/reservations/selectresort.asp" );
	
	if( form )
	{
	    
		var control;
		
		AddControlToForm( form , CreateInputControl( "arrival" , "hidden" , arrivalDate ) );
		AddControlToForm( form , CreateInputControl( "resortid" , "hidden" , resortId ) );
		AddControlToForm( form , CreateInputControl( "departdate" , "hidden" , departureDate ) );
		AddControlToForm( form , CreateInputControl( "membersid" , "hidden" , memberId ) );
		AddControlToForm( form , CreateInputControl( "unittypename" , "hidden" , unitTypeName ) );
		AddControlToForm( form , CreateInputControl( "totalcost" , "hidden" , totalCost ) );
		AddControlToForm( form , CreateInputControl( "recalculatecost" , "hidden" , false ) );
		
		var dayInfo;
		var totalCost = 0;
		
		for(var i =0; i < daysSelected.length; i++)
		{
			dayInfo = daysSelected[i].inventoryId 
					+ "_" + daysSelected[i].rate
					+ "_" + daysSelected[i].rateTypeName
					+ "_" + daysSelected[i].rate
			;
			
			AddControlToForm( form , CreateInputControl( "INVENTORYID_" + daysSelected[i].inventoryId , "hidden" , dayInfo ) );
		}
		
		form.submit();
		return;
	}
	else
	{
		alert( "Unable to book travel dates.  Please contact our friendly support staff for assistance." );
	}
	
	var msg = 
		"resort: [" + resortId + "]"
		+ "\nunit type: [" + unitTypeName + "]"
		+ "\nmember id: [" + memberId + "]"
		+ "\nmembership type: [" + membershipTypeId + "]"
		+ "\ntravel duration: [" + travelDuration + "]"
		+ "\ntotal cost: [" + totalCost + "]"
		+ "\nmin stay: [" + minStay + "]"
		+ "\narrive date: [" + arrivalDate + "]"
		+ "\ndepart date: [" + departureDate + "]"
	;
	
	if( 
		daysSelected
		)
	{
		for( var i = 0; i < daysSelected.length; i++ )
		{
			msg += "\nitem[" + i + "]: [" + daysSelected[i].inventoryId + "][" + daysSelected[i].rate + "][" + daysSelected[i].rateTypeName + "]";
		}
	}
	
	alert( msg );
	return;	
}

function book( formName, resortId , unitTypeName , arrivalDate , departureDate ,totalCost,  daysSelected, recalculatecost, urlPrefix, memberId )
{        	    
    if (document.forms[formName].urlPrefix)
    {
	    urlPrefix = document.forms[formName].urlPrefix.value
	}
		
	var form = CreateBookingForm( "bookingFormPost" , "POST" , urlPrefix +"/reservations/selectresort.asp" );
	
	if( form )
	{
	    
		var control;
		
		AddControlToForm( form , CreateInputControl( "arrival" , "hidden" , arrivalDate ) );
		AddControlToForm( form , CreateInputControl( "resortid" , "hidden" , resortId ) );
		AddControlToForm( form , CreateInputControl( "departdate" , "hidden" , departureDate ) );
		AddControlToForm( form , CreateInputControl( "membersid" , "hidden" , memberId ) );
		AddControlToForm( form , CreateInputControl( "unittypename" , "hidden" , unitTypeName ) );
		AddControlToForm( form , CreateInputControl( "totalcost" , "hidden" , totalCost ) );
		AddControlToForm( form , CreateInputControl( "recalculatecost" , "hidden" , false ) );
		
		var dayInfo;
		var totalCost = 0;
		
		for(var i =0; i < daysSelected.length; i++)
		{
			dayInfo = daysSelected[i].inventoryId 
					+ "_" + daysSelected[i].rate
					+ "_" + daysSelected[i].rateTypeName
					+ "_" + daysSelected[i].rate
			;
			
			AddControlToForm( form , CreateInputControl( "INVENTORYID_" + daysSelected[i].inventoryId , "hidden" , dayInfo ) );
		}
		
		form.submit();
		return;
	}
	else
	{
		alert( "Unable to book travel dates.  Please contact our friendly support staff for assistance." );
	}
	
	var msg = 
		"resort: [" + resortId + "]"
		+ "\nunit type: [" + unitTypeName + "]"
		+ "\nmember id: [" + memberId + "]"
		+ "\nmembership type: [" + membershipTypeId + "]"
		+ "\ntravel duration: [" + travelDuration + "]"
		+ "\ntotal cost: [" + totalCost + "]"
		+ "\nmin stay: [" + minStay + "]"
		+ "\narrive date: [" + arrivalDate + "]"
		+ "\ndepart date: [" + departureDate + "]"
	;
	
	if( 
		daysSelected
		)
	{
		for( var i = 0; i < daysSelected.length; i++ )
		{
			msg += "\nitem[" + i + "]: [" + daysSelected[i].inventoryId + "][" + daysSelected[i].rate + "][" + daysSelected[i].rateTypeName + "]";
		}
	}
	
	alert( msg );
	return;	
}

function dateDiff(date1, date2)
{
	var one_day=1000*60*60*24
	return Math.ceil((date1.getTime()-date2.getTime())/(one_day))
}

function testDates(a1, d1, a2, d2)
{

	return (a1 == a2 && d1 == d2)
}

function testDates2(a1, d1, a2, d2)
{
	da1 = new Date(a1)
	dd1 = new Date(d1)
	
	da2 = new Date(a2)
	dd2 = new Date(d2)
	
	return (da1 == da2 && dd1 == dd2)
	
}

function prebook()
{
var daysSelected;
var daysArray;
var travelData = new Array();
var travelItem;
	
	with (document.forms[0])
	{
	    
		if (memberID.value.length ==0)
		{
			memberID.value = 0
		}
		a = prebook.arguments;
		
		if (!testDates2(a[2], a[3], document.forms[0].ucSearch_txtStartDate.value, document.forms[0].ucSearch_txtEndDate.value) && 1 == 2)
		{
			alert("Arrival and/or departure dates have been changed. Click the Search Button to refresh the data.")
		}
		else
		{
			strConcat = "";
			
			document.forms[0].ucSearch_txtStartDate.value = a[2]
			document.forms[0].ucSearch_txtEndDate.value = a[3]

			//populate daysSelected
			for (var i=7; i<a.length; i++)
			{
				daysArray = a[i].split("_")

				travelItem = new Object();
				travelItem.inventoryId = daysArray[0];
				travelItem.rate = daysArray[1];
				travelItem.rateTypeName = daysArray[2];
				
				
				travelData.push( travelItem );
			}
			daysSelected = travelData
		
	    	
			// book the unit
			bookGuest(document.forms[0].name, a[0] , a[1] ,a[2] ,a[3] ,a[5], daysSelected, memberID.value );
		}
	}
}

function prebook2()
{

    var daysSelected;
    var daysArray;
    var travelData = new Array();
    var travelItem;

    a = prebook2.arguments;
		
    var formName = document.forms[0].name
    if (document.forms.length > 1)
    {
        formName = document.forms["bookingForm"].name
    }
    
	with (document.forms[formName])
	{
		
		strConcat = "";
		
		if (document.forms[formName].ucSearch_txtStartDate)
		{
		    document.forms[formName].ucSearch_txtStartDate.value = a[2]
		}
		
		if (document.forms[formName].ucSearch_txtEndDate)
		{
		    document.forms[formName].ucSearch_txtEndDate.value = a[3]
        }
        
		var rateArray = a[7]
		var memberId = a[9]

		//populate daysSelected
		for (var i=0; i<rateArray.length; i++)
		{
			daysArray = rateArray[i].split("_")
			
			//create & populate object
			travelItem = new Object();
			travelItem.inventoryId = daysArray[0];
			travelItem.rate = daysArray[1];
			travelItem.rateTypeName = daysArray[2];

			travelData.push( travelItem );
		}
		
		daysSelected = travelData
		
		book(formName, a[0] , a[1] ,a[2] ,a[3] ,a[5], daysSelected, a[6], a[8], memberId );
	}
}

function displayArrayEntries(arrayObject)
{
    if ( confirm("There are " +arrayObject.length +" entries in the array. Proceed?"))
    {   
        for (var i = 0; i< arrayObject.length; i++)
        {
            alert("entry " +i +":" +arrayObject[i])
        }
     }
}

function displayFormFields(form)
{
    if ( confirm("there are " +form.length +" fields in " +form.name +". Proceed?"))
    {
        for (var i = 0; i<form.length; i++)
        {
            alert("" +form[i].name +":" +form[i].value)
        }
    }
}

function bookWeek()
{

	with (document.forms[0])
	{
		a = bookWeek.arguments;
		
		// TODO: refer to arguments by name rather than position
		hdnChannelId.value = a[0];
		hdnResortId.value = a[1];
		hdnResortName.value = a[2];
		hdnCheckInDate.value = a[3];
		hdnCheckOutDate.value = a[4];
		hdnRate.value = a[5];
		hdnSavings.value = a[6];
		hdnUnitTypeName.value = a[7];
		hdnMaxOccupancy.value = a[8];
		hdnBedrooms.value = a[9];
		hdnBathrooms.value = a[10];
		hdnKitchen.value = a[11];
		hdnSeasonId.value = a[12];
		hdnLowestTotalRate.value = a[13];
		hdnValue.value = a[14];
		hdnPrivacyOccupancy.value = a[15];
		hdnSearchRegion.value = a[16];
				
		// We need to 'remove' the viewstate because we're posting to a different page and
		// .NET will give an error if the viewstate doesn't match.
		document.getElementById("__VIEWSTATE").name = "__NOVIEWSTATE";
		//action = "../reservations/channel_booking.aspx";
		strUrlPrefix = document.forms[0].urlPrefix.value
		strPath = strUrlPrefix +"/reservations/channel_booking.aspx"
		
		action = strPath
		
		submit()
	}

}


function PageQuery(q) {
if(q.length > 1) this.q = q.substring(1, q.length);
else this.q = null;
this.keyValuePairs = new Array();
if(q) {
for(var i=0; i < this.q.split("&").length; i++) {
this.keyValuePairs[i] = this.q.split("&")[i];
}
}
this.getKeyValuePairs = function() { return this.keyValuePairs; }
this.getValue = function(s) {
for(var j=0; j < this.keyValuePairs.length; j++) {
if(this.keyValuePairs[j].split("=")[0] == s)
return this.keyValuePairs[j].split("=")[1];
}
return false;
}
this.getParameters = function() {
var a = new Array(this.getLength());
for(var j=0; j < this.keyValuePairs.length; j++) {
a[j] = this.keyValuePairs[j].split("=")[0];
}
return a;
}
this.getLength = function() { return this.keyValuePairs.length; } 
}
function queryString(key){
var page = new PageQuery(window.location.search); 
return unescape(page.getValue(key)); 
}
function textReplace(string,text,by) {
// Replaces text with by in string
    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;
}
