/// <reference path="..\..\..\..\CommonControlsWSS\FieldControls\Base\Js\FieldControlCore.js" />

function tabStripTabClicked(arg)
{
	if (document.getElementById("flashMovie") != null)
	{
		try
		{
			document.getElementById("flashMovie").tabStripClicked(arg);
		}
		catch(e){}
	}
}

var tabStripControl;
function tabStripLoad(sender, eventArgs)
{
	tabStripControl = sender;
}

function tabStripTabSelected(sender, eventArgs)
{
	var pageName = getPageName(eventArgs.Tab)

	if (typeof (tabStripTabClicked) != "undefined")
	{
		tabStripTabClicked(pageName);
	}

	showTabStripTab(pageName);
}

function showTabStripTab(pageNameToLoad)
{
	showTabStripTabWithQueryString(pageNameToLoad, null);
}

//var queryStringDefault = "pricefrom=250000&priceto=350000&modelcode=C";
var queryStringDefault;

function setQueryStringDefault(queryStringDefaultValue)
{
	queryStringDefault = queryStringDefaultValue;
}

function showTabStripTabWithQueryString(pageNameToLoad, queryString)
{
	if (queryString != null)
	{
		if (queryString.indexOf("?") == -1)
			queryString = "?" + queryString;
	}
	else if (queryStringDefault != null && queryStringDefault != "")
	{
		if (queryStringDefault.indexOf("?") == -1)
			queryStringDefault = "?" + queryStringDefault;
	}

	if (pageNameToLoad == null || pageNameToLoad == "")
		return;

	var pageToLoad;

	for (var index = 0; index < tabStripControl.Tabs.length; index++)
	{
		var tabToShow = tabStripControl.Tabs[index];
		var pageName = getPageName(tabToShow);
		if (pageName == pageNameToLoad)
		{
			tabToShow.Select();
			pageToLoad = getPageToLoad(tabToShow);
			break;
		}
	}
	if (pageToLoad == null || pageToLoad == "")
		return;

	var tabStripDiv = document.getElementById(tabStripControl.ID);
	var viewsDivID = tabStripDiv.getAttribute("ViewClientID");
	var waitPleaseClientID = tabStripDiv.getAttribute("WaitPleaseClientID");

	if (queryString != null)
	{
		pageToLoad = pageToLoad + queryString;
	}
	else if (queryStringDefault != null && queryStringDefault != "")
	{
		pageToLoad = pageToLoad + queryStringDefault;
	}
	
	loadPage(pageToLoad, viewsDivID, waitPleaseClientID, tabStripControl.Tabs.length, index, true);

}

function getPageName(tab)
{
	var pageToLoad = getPageToLoad(tab);
	var pathParts = pageToLoad.split('/');

	return pathParts[pathParts.length - 1];
}

function getPageToLoad(tab)
{
	var tabDiv = document.getElementById(tab.ID);
	var pageToLoad = tabDiv.getAttribute("PageToLoad");

	return pageToLoad;
}


/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var loadedobjects = "";
var rootdomain = "http://" + window.location.hostname;
var divWaitPleaseClientIDGlobal = "";
var tabStripsCached;
var showGrayOutGlobal;
var optionsGlobal;
var containerIdGlobal;

function loadPage(url, containerid, divWaitPleaseClientID, tabsCount, tabIndex, showGrayOut, options)
{
	// set global fields
	containerIdGlobal = containerid;
	showGrayOutGlobal = showGrayOut;
	if (optionsGlobal == null)
		optionsGlobal = options;

	divWaitPleaseClientIDGlobal = divWaitPleaseClientID;

	// show wait div
	wait();

	// create cache for tab strip bodies
	if (tabStripsCached == null)
	{
		tabStripsCached = new Dictionary();
		
		//tabStripsCached = new Array(tabsCount);
	}

	var responseBodyCached = tabStripsCached[url];
	if (responseBodyCached != null) // tab strip is cached
	{
		loadResponseBody(containerid, responseBodyCached);
		ready();
		return;
	}

	// tab strip is not cached, it has to be downloaded
	var page_request = false;
	if (window.XMLHttpRequest) // if Mozilla, Safari etc
	{
		page_request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) // if IE
	{
		try
		{
			page_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	else
	{
		ready();
		return false;
	}
	page_request.onreadystatechange = function()
	{
		loadPageHandler(page_request, containerid, tabIndex, url);
	}
	page_request.open('GET', url, true);
	page_request.send(null);

}

function loadPageHandler(page_request, containerid, tabIndex, url)
{
	if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1))
	{
		setPage(page_request, containerid, tabIndex, url);
	}
}

function setPage(page_request, containerid, tabIndex, url)
{
	wait();

	var responseText = page_request.responseText;
	var lookUpStr;

	// body
	var startIndex = indexOfBehind(responseText, "<!--STARTOFCONTENT-->");
	var endIndex = responseText.indexOf("<!--ENDOFCONTENT-->");

	var responseBody = responseText.substring(startIndex, endIndex);

	loadResponseBody(containerid, responseBody);

	// save response in the cache
	tabStripsCached[url] = responseBody;

	var head = document.getElementsByTagName("head").item(0);

	// load javascripts from body
	loadJavaScriptsFromBody(head, responseBody);

	// load css from head
	loadCssFromHead(head, responseText);

	// start up javascripts
	lunchStartUpJavaScripts(responseBody);

	ready();
}

function loadResponseBody(containerid, responseBody)
{
	var container = document.getElementById(containerid);
	if (container != null)
	{
		container.innerHTML = responseBody;
	}
}

function loadJavaScriptsFromBody(head, response)
{
	if (head == null)
		return;
	var startIndex;
	var endIndex;
	var lookUpStr = "src=\"";
	var jsPath;

	// E.g.: <script language="javascript" type="text/javascript" src="/js/ToolBox.js">

	startIndex = response.indexOf("<script")
	var jsPath;
	while (startIndex > -1)
	{
		response = response.substring(startIndex);
		startIndex = indexOfBehind(response, lookUpStr);
		response = response.substring(startIndex);
		if (startIndex >= lookUpStr.length)
		{
			endIndex = response.indexOf("\"");
			jsPath = response.substring(0, endIndex);
			loadobjs(jsPath);
		}
		startIndex = response.indexOf("<script");
	}
}

function loadCssFromHead(head, responseText)
{
	if (head == null)
		return;

	var startIndex = indexOfBehind(responseText, "<!--STARTOFHEAD-->");
	var endIndex = responseText.indexOf("<!--ENDOFHEAD-->");
	var responseHead = responseText.substring(startIndex, endIndex);
	var lookUpStr = "href=\"";

	startIndex = indexOfBehind(responseHead, lookUpStr);
	var cssPath;

	while (startIndex >= lookUpStr.length)
	{
		responseHead = responseHead.substring(startIndex);
		endIndex = responseHead.indexOf("\"");
		cssPath = responseHead.substring(0, endIndex);
		loadobjs(cssPath);
		startIndex = indexOfBehind(responseHead, lookUpStr);
	}
}

function lunchStartUpJavaScripts(responseBody)
{
	var lookUpStr = "<script language=\"javascript\" text=\"text/javascript\">";
	var startIndex = indexOfBehind(responseBody, lookUpStr);
	var endIndex;
	var javaScriptToLunch;
	while (startIndex >= lookUpStr.length)
	{
		responseBody = responseBody.substring(startIndex);
		endIndex = responseBody.indexOf("</script>");
		javaScriptToLunch = responseBody.substring(0, endIndex);
		eval(javaScriptToLunch);
		startIndex = indexOfBehind(responseBody, lookUpStr);
	}
}

function indexOfBehind(sourceStr, lookUpStr)
{
	return sourceStr.indexOf(lookUpStr) + lookUpStr.length;
}

function loadobjs()
{
	if (!document.getElementById)
		return

	for (i = 0; i < arguments.length; i++)
	{
		var file = arguments[i]
		var fileref = ""
		if (loadedobjects.indexOf(file) == -1)
		{
			//Check to see if this object has not already been added to page before proceeding
			if (file.indexOf(".js") != -1)
			{
				//If object is a js file
				fileref = document.createElement('script');
				fileref.setAttribute("type", "text/javascript");
				fileref.setAttribute("src", file);
			}
			else if (file.indexOf(".css") != -1)
			{
				//If object is a css file
				fileref = document.createElement("link");
				fileref.setAttribute("rel", "stylesheet");
				fileref.setAttribute("type", "text/css");
				fileref.setAttribute("href", file);
			}
		}
		if (fileref != "")
		{
			document.getElementsByTagName("head").item(0).appendChild(fileref);
			loadedobjects += file + " "; //Remember this object as being already added to page
		}
	}
}

function wait()
{
	if (showGrayOutGlobal)
		grayOut(true, containerIdGlobal, optionsGlobal);

	var divPleaseWait = document.getElementById(divWaitPleaseClientIDGlobal);
	if (divPleaseWait == null)
		return;

	divPleaseWait.style.visibility = "visible";

}

function ready()
{
	grayOut(false, containerIdGlobal);

	var divPleaseWait = document.getElementById(divWaitPleaseClientIDGlobal);
	if (divPleaseWait == null)
		return;

	divPleaseWait.style.visibility = "hidden";
}

function mLookup(strKeyName)
{
	return (this[strKeyName]);
}

function mAdd()
{
	for (c = 0; c < mAdd.arguments.length; c += 2)
	{
		this[mAdd.arguments[c]] = mAdd.arguments[c + 1];
	}
}

function mDelete(strKeyName)
{
	for (c = 0; c < mDelete.arguments.length; c++)
	{
		this[mDelete.arguments[c]] = null;
	}
}

function Dictionary()
{
	this.Add = mAdd;
	this.Lookup = mLookup;
	this.Delete = mDelete
}



 




