var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname

window.ajaxpage = ajaxpage;
function ajaxpage(url, containerid, pagename, container, replace) {
	if (url == "indexes" || url == "mytranslators" || url == "myaccount"){
		removeAllLinksFromNav();
	} else if (url == "myprojects"){
		removeAllLinksFromNav();
		addLinkToNav(url, "All Clients");
	} 
	

	
	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
	return false
	page_request.onreadystatechange=function(){
		if(replace == undefined){
			loadpage(page_request, containerid, url);
		} else {
			replaceContents(page_request, document.getElementById(containerid), url);
		}
	}
	if (bustcachevar) //if bust caching of external page
		var bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
		page_request.open('GET', url+bustcacheparameter, true)
		page_request.send(null)
}

function loadpage(sender){
	if(sender){
		var page = sender.id + ".aspx" + "?"+new Date().getTime();
		document.getElementById("contentarea").src = page;
	}
}

//function loadpage(page_request, containerid, href) {
//	if (page_request.readyState == 4) {
//		if (page_request.status == 200) {
//			// parse the response to see if it is the login page
//			var xmlresponse = page_request.responseXML;
//			var response = page_request.responseText;
//			if(response.search("LoGiNpAgE") != -1) {
//				self.location.replace("/lingopoint/login");
//			} else if(response.search("scw") != -1) {
//				//loadJSFile('scw.js');
//			} else  {
//			
//			var nextpage;
//			var divToChange =  document.getElementById(containerid);
//			var lastpage = divToChange.innerHTML;
//			document.getElementById(containerid).innerHTML=response;
//			// --------------------------------------------
///*			 dojo.io.bind({
//				url: href,
//				load: function(type, data, evt){*/
//					divToChange.innerHTML = response;
//				/*},
//				error: function(type, error){  },
//				backButton: function() {
//					divToChange.innerHTML = lastpage;
//				},
//				forwardButton: function(){
//					divToChange.innerHTML = response;
//				},
//				changeURL: true,
//					mimetype: "text/plain"
//				});
//				// --------------------------------------------
//			*/}
//			
//		} else {
//			var oErrorWindow = window.open('about:blank');
//			oErrorWindow.document.write(page_request.responseText);
//			oErrorWindow.document.close();
//		}
//	}
//	loadobjs(href);
//}

function replaceContents(page_request, container, href){
	if (page_request.readyState == 4) {
		if (page_request.status == 200) {
			// parse the response to see if it is the login page
			var response = page_request.responseText;
			if(response.search("LoGiNpAgE") != -1) {
				self.location.replace("/lingopoint/login");
			} else  {
				var newContent;
				try{
					var xmldom = new ActiveXObject("Microsoft.XMLDOM")
					xmldom.loadXML(page_request.responseText);
					newContent = xmldom.getElementById(container.id);
				} catch(e){
					var tempContainer = document.getElementById("tempContainer");
					tempContainer.innerHTML = response;
					var innertags = tempContainer.getElementsByTagName(container.tagName);
					
//					alert("container id: " + container.id + " AND innertags count: " + innertags.length);
					var tagIWant; 
					for(var i=0; i<innertags.length;i++){
						if(innertags[i].id == container.id){
							tagIWant = innertags[i];
							break;
							
						}
					}
//					alert("done looking");
					container.innerHTML = tagIWant.innerHTML;
					tempContainer.innerHTML = "";
				//	container.appendChild(tagIWant);
					
/*					var xmlobject = (new DOMParser()).parseFromString(page_request, "application/xhtml+xml");
					var roottag = xmlobject.documentElement;
					if(roottag.tagName == "parsererror"){
						var message = xmlobject.documentElement.firstChild.data;
									message += "\n" + xmlobject.documentElement.firstChild.nextSibling.firstChild.data;
									alert(message);
									//alert(response);
									document.write(response);
								}
*/
				}
				//container.innerHTML = newContent.innerHTML;
			}
			
		} else {
			var oErrorWindow = window.open('about:blank');
			oErrorWindow.document.write(page_request.responseText);
			oErrorWindow.document.close();
		}
	}
	loadobjs(href);
}

function addLinkToNav(url, title){
	var container = document.getElementById("topNavigationTr");
	var td = document.createElement("TD");
	var arrow = document.createTextNode(" > ");
	td.appendChild(arrow);
	var link = document.createElement("A");
		link.setAttribute("href", "javascript:ajaxpage('"+url+"', 'contentarea'); removeLinksFromNav("+container.getElementsByTagName("TD").length+")");
		link.setAttribute("style", "color:blue;text-decoration:underline;");
	var linkText = document.createTextNode(title);
	link.appendChild(linkText);
	td.appendChild(link);
	container.appendChild(td);
}

function removeLinkFromNav(){
	try{
		var container = document.getElementById("topNavigationTr");
		
		var tdlist = container.getElementsByTagName("TD");
		var nodeToRemove = tdlist[tdlist.length-1];
		nodeToRemove.parentNode.removeChild(nodeToRemove);
	} catch (e) {}
}

function removeLinksFromNav(index){
	try{
		var container = document.getElementById("topNavigationTr");
		
		var tdlist = container.getElementsByTagName("TD");
		for ( var i = tdlist.length -1; i >= 0; i-- ){
			var nodeToRemove = tdlist[i];
			if(i > index) {
				nodeToRemove.parentNode.removeChild(nodeToRemove);
			}
		}
	} catch (e) {}
}

function removeAllLinksFromNav(){
	try{
		var container = document.getElementById("topNavigationTr");
		
		var tdlist = container.getElementsByTagName("TD");
		for(var i=0;i<=tdlist.length;){
			var nodeToRemove = tdlist[i];
			nodeToRemove.parentNode.removeChild(nodeToRemove);
		}
	} catch (e) {}
}

function loadobjs(href){
	href = href.split("?")[0];
	if(href == "myaccount" || href == "modifyaddress" || href == "updateaccount" || href == "updatepaymentinfo"){
		loadJSFile('datepicker.js');
		loadJSFile('validationcheck.js');
		loadJSFile('countrystate.js');
	} else if (href == "myprojects" || href == "dashboard" || href == "mytranslators"){
		loadJSFile('projectjobs.js');
		loadJSFile('obj_languageskill.js');
	} else if (href == "projectdetails"){
		loadJSFile('obj_phase.js');
		loadJSFile('projectjobs.js');
	} else if(href == "indexes"){
		loadJSFile('projectjobs.js');
		loadJSFile('obj_index.js');
	} else if(href == "countdown"){
		loadJSFile('countdownBegin.js');
	}else {
		loadJSFile('explorer.js');
		loadJSFile('obj_document.js');
		loadJSFile('validationcheck.js');
		loadJSFile('messagewindow.js');
		loadJSFile('encodingscript.js');
		loadJSFile('dojo.js');
		loadJSFile('newproject.js');
		loadJSFile('opendex.js');
	}
}

function loadJSFile(file){
		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 getDocName(str, obj)
{
	if(str.search("/") == -1){
		var str_split = str.split("\\");
		var count = str_split.length;
		obj.value = str_split[count -1];
	} else {
		var str_split = str.split("/");
		var count = str_split.length;
		obj.value = str_split[count -1];
	}
}

function pagePost(page, sendStr, loadResponse){
	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 {
		return false;
	}
	
	var strResult;
	page_request.open('POST',page,false);
	page_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	
	page_request.send(sendStr);
	
	strResult = page_request.responseText;
	
	var result = document.createTextNode(strResult);
	
	if (page_request.status == 200 && loadResponse) {
		document.getElementById('contentarea').innerHTML = strResult;
	} else if(page_request.status != 200){
		//var oErrorWindow = window.open('about:blank');		oErrorWindow.document.write(page_request.responseText);		oErrorWindow.document.close();
	}
	return strResult;
}

function getDirections(){
	var street = document.getElementById("");
	var city = document.getElementById("");
	var state = document.getElementById("");
	var zip = document.getElementById("");
	var url = "http://www.mapquest.com/directions/main.adp?go=1&do=nw&rmm=1&pn1x=&a1x=9"
				+ street +
				"&c1x="
				+ city +
				"&s1x="
				+ state +
				"&z1x="
				+ zip +
				"&pn2x=&a2x=5116+TORPEDO+PL+NW&c2x=ALBUQUERQUE&s2x=NM&z2x=87120-2093&1gi=0&un=m&1da=-1.000000&1rc=L1AAA&cl=EN&qq=1ADqpk24ofBXzEN6v7b%252fXnt2ZplsOesEJBpVrk3LQfRPG2X35xxGAdRvBO5w2vrWlFI6Ju5%252f5%252fkmX3PRWaEeo0%252foj%252fEA5cWhMsUxPpQDcgqh8xdT6yssIcG2uMGqdBw4aQb%252bKpRF3vPyrL9pUgUqTAAnxMpZBjIXas0e5vEoaJZmSg2b1W5WQoLQCOGcFQqh5MiQfpQgpwg%253d&ct=NA&r=f&1si=navt&rsres=1&1y=US&1ffi=&1l=zka%252bTRZ%252fCRzu72J0HOg3cw%253d%253d&1g=vzAZdU8rWIogoHjcmucsPQ%253d%253d&1pl=&1v=ADDRESS&1n=BERNALILLO+COUNTY&1pn=&1a=903+10TH+ST+SW&1c=ALBUQUERQUE&1s=NM&1z=87102-4029&2y=US&2ffi=&2l=&2g=&2pl=&2v=&2n=&2pn=&2a=5116+TORPEDO+PL+NW&2c=ALBUQUERQUE&2s=NM&2z=87120-2093&panelbtn=2";
	window.open(url);
}