var navVisible = "no";
var currentPage;
var pageList;
var checked;
var theid = "";
function buildNav(){
	var items=document.getElementById("submitButton").parentNode.parentNode.getElementsByTagName('h4'); //Build navigation bar
	var item;
	var formNavigation;

	currentPage="submit";

	if (items.length<2)
		return false;

	checked = new Array;
	pageList = new Array;

	for(var i = 0;i < items.length; i++){
		pageList[i] = items[i].parentNode.parentNode.getAttribute("id");
		if(i==0)
			checked[i] = 'check';
		else
			checked[i] = 'off';
	}

	currentPage=pageList[0];

	document.getElementById("submitButton").getElementsByTagName("button")[0].
		getElementsByTagName("img")[0].setAttribute("src","/images/wizardimages/gobutton.jpg");

	if (pageList.length>1) {
		for (var i=0;i<pageList.length;i++)
			if (i>0)
				setVisibility(pageList[i],"none");
	}

}

function checkPage(pageID){
	var http_request=createAJAXConnection();
	http_request.onreadystatechange=function() { processResponse(http_request); };
	http_request.open('POST',"forms.php",true);
	var form_data = document.getElementsByTagName("form");

	if(form_data.length > 1){
		var postData="page=quickQuoteData&load="+pageID;
	}else
		var postData="page="+form_data[0].getAttribute("id")+"Data&load="+pageID;

	if (!pageList){
		if(form_data.length > 1)
			var page=document.getElementById("quickQuote");
		else
			var page=document;
	}else{
		if(form_data.length > 1)
			var page=document.getElementById("quickQuote");
		else
			var page=document.getElementById(currentPage);
	}

	var inputs=page.getElementsByTagName("input");

	for (var i=0;i<inputs.length;i++){
		if (inputs[i].getAttribute("type")!="checkbox"){
			temp=getFieldData(inputs[i]);
			if (temp!=null)
				postData=postData+"&"+temp;
		}
	}

	inputs=page.getElementsByTagName("select");

	for (var i=0;i<inputs.length;i++){
		temp=getFieldData(inputs[i]);
		if (temp!=null) postData=postData+"&"+temp;
	}

	inputs=page.getElementsByTagName("textarea");

	for (var i=0;i<inputs.length;i++){
		temp=getFieldData(inputs[i]);
		if (temp!=null) postData=postData+"&"+temp;
	}

	if(pageID=="submit")
		postData=postData+"&submit=yes";

	http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");;
	http_request.send(postData);
}

function createAJAXConnection(){
	var http_request;
	if (window.XMLHttpRequest) //Mozilla, Safari, ...
	{
		http_request=new XMLHttpRequest();
		if (http_request.overrideMimeType)
			http_request.overrideMimeType("text/xml");
	}else if (window.ActiveXObject) // IE 
		try {
			http_request=new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			try {
				http_request=new ActiveXObject("Msxm12.XMLHTTP");
			} catch (e) {}
		}
	else http_request=false;
	if (!http_request) 
		alert("Giving up :( Cannot create an XMLHTTP instance");
	return http_request;
}

function continueClicked()
{
	var i;
	if (!pageList)
		{
		var page = document.getElementsByTagName("form")[0];
	    theid = page.getAttribute('id') ;
		pageTracker._trackEvent(theid, 'submit', 'submit', 0);
		checkPage("submit");
		}
	else
	{
		for (i=0;pageList[i]!=currentPage && i<pageList.length;i++);
		if (i==pageList.length-1)
			checkPage("submit");
		else
			checkPage(pageList[i+1]);
	}
}

function findAHome(homeSearch)
{
	if (homeSearch!=null) var url=location.href.substring(0,location.href.indexOf('/',7))+'/navPage.html?targetPage=http://'+escape(homeSearch);
	else {
		var ct=getFieldData(document.getElementById("ct"));
		var st=getFieldData(document.getElementById("st"));
		if (st=="st=Select%20One") st="st=";
		var zp=getFieldData(document.getElementById("zp"));
		var mnprice=getFieldData(document.getElementById("mnprice"));
		var mxprice=getFieldData(document.getElementById("mxprice"));
		var mnbed=getFieldData(document.getElementById("mnbed"));
		if (mnbed=="mnbed=Select%20one") mnbed="mnbed=";
		else mnbed="mnbed="+parseInt(mnbed.split("=")[1]);
		var mnbath=getFieldData(document.getElementById("mnbath"));
		if (mnbath=="mnbath=Select%20one") mnbath="mnbath=";
		else mnbath="mnbath="+parseFloat(mnbath.split("=")[1]);
		var url=location.href.substring(0,location.href.indexOf('/',7))+"/navPage.html?targetPage=http://www.realtor.com/FindHome/RedirAreaID.asp?"+ct+"%26"+st+"%26"+zp+"%26"+mnprice+"%26"+mxprice+"%26"+mnbed+"%26"+mnbath+
			"%26poe=realtor%26mls=xmls%26frm=";
		if (zp!="zp=") url=url+"byzip";
		else url=url+"bymap";
	}
	location.href=url;
}

function flipPage(pageID)
{
	
	var queue = Effect.Queues.get('scope');
	var item;
	var iconName;
	var previousPage = currentPage;
	var page = document.getElementsByTagName("form")[0];
    theid = page.getAttribute('id') ;
     //alert(theid);
	pageTracker._trackEvent(theid, currentPage, currentPage, 0);

	Effect.Fade(currentPage, {queue: { position: 'front', scope: 'scope1' }});
	Effect.Fade("submitButton", {queue: { position: 'front', scope: 'scope2' }});

	if(currentPage == 'login'){
		Effect.Fade(document.getElementById("splashArrow"));
	}else{
		if(document.getElementById("formNavigation") != null){
			var formNav = document.getElementById("formNavigation");
			var navParent = document.getElementById("formNavigation").parentNode;
			Effect.Fade(formNav);
 			navParent.removeChild(document.getElementById("formNavigation"));
		}
	}

	currentPage=pageID;

	var navTag = document.getElementById(currentPage).getElementsByTagName("div")[0];

	formNavigation=document.createElement("ul");
	formNavigation.setAttribute("id","formNavigation");

	var j = 0;
	while(navTag.childNodes[j].tagName == "") j++; // Getting rid of garbase before formError img

	navTag = navTag.childNodes[j];

	navTag.parentNode.insertBefore(formNavigation, navTag.parentNode.lastChild);
	setVisibility("formNavigation","none");

	if (pageList.length>1) {
		for (var i=0;i<pageList.length;i++){
			var navIcon = 'step' + (i+1);

			if(navIcon == previousPage)
				checked[i] = 'check';

			item=document.createElement("li");
			item.setAttribute("id",pageList[i]+'NavButton');
			//item.innerHTML="<a href=\"javascript:checkPage('"+pageList[i]+"')\"><img src=\"../images/wizardimages/step"+(i+1)+checked[i]+".jpg\" alt=\"Step "+(i+1)+"\" /></a>";
			item.innerHTML="<img src=\"../images/wizardimages/step"+(i+1)+checked[i]+".jpg\" alt=\"Step "+(i+1)+"\" />";
			document.getElementById("formNavigation").appendChild(item);
		}
	}

	var submit = document.getElementById("submitButton").getElementsByTagName("button")[0].getElementsByTagName("img")[0];
	if (currentPage=="submit") submit.setAttribute("src","../images/wizardimages/submitbuttons.jpg");
	else submit.setAttribute("src","../images/wizardimages/continuebutton.jpg");

//	Effect.toggle("submitButton");
//	Effect.Appear("formBox", {queue: { position: 'end', scope: 'scope1' }});
//	Effect.Appear("formBoxBottom", {queue: { position: 'end', scope: 'scope2' }});
	Effect.Appear(pageID, {queue: { position: 'end', scope: 'scope1'}});
	Effect.Appear("submitButton", {queue: { position: 'end', scope: 'scope2'}});
//	Effect.Appear(formBody, {queue: { position: 'end', scope: 'scope'}});
//	Effect.Fade("formBody");
}

function getFieldData(obj)
{
//	else postData=null;
	var postData = null;
	if (obj.getAttribute("type")=="radio"){
		if (obj.checked)	//radio button
			postData=obj.parentNode.parentNode.getAttribute("id")+"="+encodeURI(obj.getAttribute("value"));
	}
	else if (obj.tagName=="SELECT"){ 										//dropdown
		if (obj.value) postData=obj.getAttribute("id")+"="+encodeURI(obj.value);
		else{
			var options=obj.getElementsByTagName("option");
			postData=obj.getAttribute("id")+"=";
			for (var i=0;i<options.length;i++) if (options[i].getAttribute("selected"))
			{
				postData=postData+encodeURI(options[i].firstChild.data);
				break;
			}
		}
	}
	else if (obj.tagName=="TEXTAREA"){
		postData=obj.getAttribute("id")+"="+encodeURI(obj.value);
	}
	else if (obj.getAttribute("type")=="text") 											//text box
		postData=obj.getAttribute("id")+"="+encodeURI(obj.value);
	else if (obj.getAttribute("type")=="file") 											//text box
		postData=obj.getAttribute("id")+"="+encodeURI(obj.value);
	else if (obj.getAttribute("type")=="checkbox")										// clicked on checkbox
		postData=obj.getAttribute("id")+"="+encodeURI(obj.checked);

	if (postData) {
		var rexp = new RegExp("\\+", "g");
		postData=postData.replace(rexp,"\%2B");
	}
	return postData;
}

function loadEvents() 
{
	var form=document.getElementById("submitButton").parentNode;
	var inputs=form.getElementsByTagName("input");
	
	for(var i=0;i<inputs.length;i++)
		if(inputs[i].getAttribute("type")=="radio" || inputs[i].getAttribute("type")=="checkbox")
			inputs[i].onclick = validate;
		else if(inputs[i].getAttribute("type")=="text")
			inputs[i].onblur = validate;

	inputs=form.getElementsByTagName("select");

	for (var i=0;i<inputs.length;i++)
		inputs[i].onchange = validate;

	inputs=form.getElementsByTagName("textarea");

	for (var i=0;i<inputs.length;i++)
		inputs[i].onblur=validate;

	var submit = document.getElementById("submitButton").getElementsByTagName("button")[0];

	submit.onclick=continueClicked;
	submit.setAttribute("type","button");

	form.style.display="block";
}

function loadSession(http_request)
{
	if (http_request.readyState==4)
		if (http_request.status==200)
		{
			var xmldoc=http_request.responseXML;
			if (xmldoc.documentElement) xmldoc=xmldoc.documentElement;

			var errors=xmldoc.getElementsByTagName("error");
			var fields=xmldoc.getElementsByTagName('field');

			var selected_field = null;
			var field;

			for(var i=0;i<fields.length;i++){
				var skip_field = 'no';
				field=document.getElementById(fields[i].getAttribute("id"));
				var errorField=document.getElementById(fields[i].getAttribute("id")).nextSibling;

				if (field.tagName=="INPUT") {
					if (field.getAttribute("type")=="text") field.value=fields[i].firstChild.data;
					else if (field.getAttribute("type")=="checkbox") field.checked=true;
				}else if (field.tagName=="UL"){
					var options=field.getElementsByTagName("INPUT");
					
					if(field.getAttribute("type") == "checkbox")
						skip_field = 'yes';

					for (var j=0;j<options.length;j++)
						if (options[j].value==fields[i].firstChild.data)
							options[j].setAttribute("checked","true");
				}
				else if (field.tagName=="SELECT")
				{
					if (field.value) field.value=fields[i].firstChild.data
					else
					{
						var options=field.getElementsByTagName("option");
						for (var j=0;j<options.length;j++){
							if (options[j].firstChild.data==fields[i].firstChild.data){
								options[j].setAttribute("selected","selected");
								selected_field = fields[i].firstChild.data;
							}
						}
					}
				}

				while (!errorField.tagName) errorField=errorField.nextSibling;
				
				
				if(errorField.childNodes.length != null && skip_field == 'no'){
					var j = 0;
					while(errorField.childNodes[j].tagName != "IMG") j++; // Clean out Garbages of checking field

					errorField = errorField.childNodes[j];

					errorField.setAttribute("title", "Vaild");
					errorField.setAttribute("alt","Vaild");
					errorField.setAttribute("src","/images/wizardimages/checkmark.gif");
				}

				if(selected_field != null){
					selected_field_name = selected_field.replace(/ /g, "-").toLowerCase();
					var sub_set_check = document.getElementById(selected_field_name);
	
					if(sub_set_check)
						sub_set_check.style.display="block";
				}
			}
		}
		else alert('There was a problem with the request.');	
}

function login()
{
	var http_request=createAJAXConnection();
	http_request.onreadystatechange=function() { loadSession(http_request); };
	http_request.open("POST","forms.php",true);

	var form_data = document.getElementsByTagName("form");

	if(form_data.length > 1)
		var postData="page=quickQuoteData&load=yes";
	else
		var postData="page="+form_data[0].getAttribute("id")+"Data&load=yes";

	http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_request.send(postData);
}

function processResponse(http_request)
{
	if (http_request.readyState==4)
		if (http_request.status==200)
		{
			var xmldoc=http_request.responseXML;
			if (xmldoc.documentElement) xmldoc=xmldoc.documentElement;
			var errors=xmldoc.getElementsByTagName("error");
			var subset=xmldoc.getElementsByTagName("subset");
			var pageto=xmldoc.getElementsByTagName('pageto');
			var redirect=xmldoc.getElementsByTagName('redirect');

			
			if(subset.length > 0){
				var sub_id = subset[0].getAttribute("id");
				var selected_name = subset[0].getAttribute("name");
				var sub_set = document.getElementById(sub_id);
				var subset_list = sub_set.getElementsByTagName("option");

				for(var i=0;i < subset_list.length;i++){
					var sub_field_name = subset_list[i].innerHTML.replace(/ /g, "-").toLowerCase();
					var common_field_set = document.getElementById('common-subset');

					if(sub_field_name != 'select-one'){
						var sub_field_set = document.getElementById(sub_field_name);
						if(sub_field_name == selected_name){
							if(sub_field_set != null)
								Effect.Appear(sub_field_set);
							//sub_field_set.style.display="block";
							if(common_field_set != null)
								Effect.Appear(common_field_set);
							//common_field_set.style.display = "block";
						}else{
							if(sub_field_set != null)
								Effect.Fade(sub_field_set);
							//sub_field_set.style.display="none";
						}
					}else{
						//common_field_set.style.display = "none";
						if(common_field_set != null)
							Effect.Fade(common_field_set);
					}
				}
			}

			for (var i=0;i<errors.length;i++)
			{
				var errorField=document.getElementById(errors[i].getAttribute("id")).nextSibling;
				while (!errorField.tagName) errorField=errorField.nextSibling;
				
				var j = 0;
				while(errorField.childNodes[j].tagName != "IMG") j++; // Getting rid of garbase before formError img
				errorField = errorField.childNodes[j];

				errorField.setAttribute("title",errors[i].firstChild.data);
				errorField.setAttribute("alt",errors[i].firstChild.data);
				if (errors[i].firstChild.data=="Vaild")
					errorField.setAttribute("src","/images/wizardimages/checkmark.gif");
				else
					errorField.setAttribute("src","/images/wizardimages/xmark.gif");
			}
			if (pageto.length>0){

				if ((pageto[0].firstChild.data=="submit")&&(currentPage=="submit"))
					if (document.getElementsByTagName("form")[0].parentNode.getAttribute("id")=="findAHome")
					{
						var homeSearchSource=xmldoc.getElementsByTagName('homeSearchSource');
						if (homeSearchSource.length) findAHome(homeSearchSource[0].firstChild.data);
						else findAHome(null);
					}else if(redirect.length >0 && redirect[0].firstChild.data == 'upload'){
						location.href = "http://"+location.hostname+"/forms/upload.php";
					// Begin New Redirect for single form pages//
					}else if(redirect.length >0 && redirect[0].firstChild.data == 'career_opportunities_appData'){
						location.href = "http://"+location.hostname+"/confirmation.php?page=www.220marketing.com/facebook_welcome.html";
					}else if(redirect.length >0 && redirect[0].firstChild.data == 'free_consultation_appData'){
						location.href = "http://"+location.hostname+"/confirmation.php?page=www.220marketing.com/facebook_welcome.html";
					}else{
						location.href = "http://"+location.hostname+"/confirmation.php";
					}
					//else location.href="http://"+location.hostname+"/";
				else
				{
					flipPage(pageto[0].firstChild.data);

					if (navVisible=="no")
						setVisibility("formNavigation","block");
				}
			}
		} else alert("There was a problem with the request.");	
}

function setVisibility(objectID,state) { document.getElementById(objectID).style.display=state; }

function validate()
{
	var http_request=createAJAXConnection();
	var form_data = document.getElementsByTagName("form");
	http_request.onreadystatechange=function() { processResponse(http_request); };
	http_request.open("POST","forms.php",true);

	if(form_data.length > 1)
		var postData="page=quickQuoteData&"; // set name of xml validation file
	else
		var postData="page="+form_data[0].getAttribute("id")+"Data&"; // set name of xml validation file

	postData=postData+getFieldData(this);
	http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http_request.send(postData);
}

function formSetup() {
	buildNav();
	loadEvents();
	login();
}

if (window.addEventListener) window.addEventListener("load",formSetup,false);
else window.attachEvent("onload",formSetup);

