function NewObject(ID) {
	this.ID = ID ;
}

function NewInfo() {
	this.ID = Math.random(10) ;
	this.Type = '' ;
	this.Value = new Array() ;
	this.Selected = 0 ;
	this.Checked = "" ;
}

var MyTitle = new NewObject('Title') ;
MyTitle.Word = 'Email Enquiry' ;
MyTitle.FontSize = '20' ;
MyTitle.Color = '#000000' ;
MyTitle.Weight = 'bold' ;

var MySubTitle = new NewObject('SubTitle') ;
MySubTitle.FontSize = '16' ;
MySubTitle.Color = '#000000' ;
MySubTitle.Weight = 'bold' ;

var MyContent = new NewObject('SubTitle') ;
MyContent.FontSize = '12' ;
MyContent.Color = '#000000' ;
MyContent.Weight = 'normal' ;

var MyEnquiry = new NewObject('Title') ;
MyEnquiry.Word = 'Your Enquiry' ;

var MyAddInfo = new Array() ;
var MyDivObj ;
var MyFont = 'arial' ;
var MyUrl = "http://maps.street-directory.com.au/email_enquiry/" ;
var MyCompanyName = "" ;

function CheckSubmit() {
	var F = eval('document.MyInitialForm');
	var Url = "" ;
	for (var i=0; i<F.length-1; i++)
	{
		if (F[i].type != 'checkbox')
		{
			F[i].value = Trim(F[i].value)
			Url += F[i].name+"="+encodeURIComponent(F[i].value)+"&" ;
		}
	}
	for (var i in MyAddInfo)
	{
		if (MyAddInfo[i].Type.toLowerCase() == 'multiple')
		{
			var NF = eval('document.MyInitialForm.AddInfo'+i);
			if (MyAddInfo[i].Value.length == 1) {
				if (NF.checked)
				{
					Url += "AddInfo"+i+"="+encodeURI(NF.value)+"&";
				} else {
					Url += "AddInfo"+i+"=&";
				}
			} else if (MyAddInfo[i].Value.length > 1) {
				var CheckValue = "" ;
				for (var j=0; j<NF.length; j++)
				{
					if (NF[j].checked)
					{
						CheckValue += NF[j].value+"\t" ;
					}
				}
				CheckValue = CheckValue.replace(/\t$/g,"");
				Url += "AddInfo"+i+"="+encodeURI(CheckValue)+"&";
			}
		}
	}
	Url += "Ref="+Math.random(10) ;

	var Valid = true ;
	ClearAlert();
	if (F.PName.value.length <= 0) {
		SaveAlert('Please key in name');
		Valid = false ;
	}

	if (isEmail(F.PEmail.value) == false)
	{
		SaveAlert('Please key in valid email address');
		Valid = false ;
	}

	if (F.PPhone.value.length > 0 && F.PPhoneSTD.value.length <= 0 && F.PPhone.value.substring(0,1) != '0')
	{
		SaveAlert('Please key in phone STD code');
		Valid = false ;
	}

	if (F.PPhone.value.length <= 0 && F.PMobi.value.length <= 0)
	{
		SaveAlert('Please key in either mobile or phone number');
		Valid = false ;
	}
	if (Valid)
	{
		F.GenerateButton.value = " P L E A S E   W A I T ... " ;
		F.GenerateButton.disabled = true ;
		SentEmail(Url);
	} else {
		/*F.GenerateButton.value = "     S  U  B  M  I  T     " ;*/
		F.GenerateButton.value = "SUBMIT";
		F.GenerateButton.disabled = false ;
		ShowAlert();
	}
}

function cNum(e) {
	var strCheck = '0123456789\b';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (whichCode == 0) return true ;
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
}

function cPhone(e) {
	var strCheck = '0123456789-+ ()[]/\b';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	key = String.fromCharCode(whichCode);  // Get key value from key code
	if (whichCode == 0) return true ;
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
}

function isEmail(Email) {
	var result = true ;
	var Regex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/ ;
	return Regex.test(Email) ;
}

function ClearAlert() {
	MyAlert = "" ;
}

function SaveAlert(T) {
	MyAlert += T+"\n" ;
}

function ShowAlert() {
	alert(MyAlert);
}

function CheckDatebyMonthYear(FormName,DForm,MForm,YForm) {
	var SD = eval("document."+FormName+"."+DForm);
	var SM = eval("document."+FormName+"."+MForm);
	var SY = eval("document."+FormName+"."+YForm);

	var TDD = SD.options[SD.options.selectedIndex].value ;
	var TDM = SM.options[SM.options.selectedIndex].value ;
	var TDY = SY.options[SY.options.selectedIndex].value ;

	var LongDate = (TDM==1 || TDM==3 || TDM==5 || TDM==7 || TDM==8 || TDM==10 || TDM==12)?31:30;
	if (TDM == 2)
	{
		LongDate = (TDY%4==0)?29:28;
	}
	while (SD.options.value)
	{
	   SD.options[0] = null ;
	}
	var j = 0 ;
	for (var i=1;i<=LongDate ;i++ )
	{
		var ValI = i ;
		ValI = (ValI<10)?"0"+i:i;
		SD.options[j] = new Option(SD,SD,true,true,true) ;
		SD.options[j].text = i ;
		SD.options[j].value = ValI ;
		j++;
	}
	if (TDD <= LongDate)
	{
		SD.options[TDD-1].selected = true ;
	} else {
		SD.options[j-1].selected = true ;
	}
}


function GoCustomDateNew(FormName,DForm,MForm,YForm,DD,MM,YY) {
	var SD = eval("document."+FormName+"."+DForm);
	var SM = eval("document."+FormName+"."+MForm);
	var SY = eval("document."+FormName+"."+YForm);
	if (DD == 0 || MM == 0 || YY == 0)
	{
		var a = new Date ;
		TDD = a.getDate() ;
		TMM = a.getMonth() + 1 ;
		TYY = a.getFullYear() ;
	} else {
		TDD = DD ;
		TMM = MM ;
		TYY = YY ;
	}
	var MonthName = new Array () ;
	MonthName[1] = "Jan" ;
	MonthName[2] = "Feb" ;
	MonthName[3] = "Mar" ;
	MonthName[4] = "Apr" ;
	MonthName[5] = "May" ;
	MonthName[6] = "Jun" ;
	MonthName[7] = "Jul" ;
	MonthName[8] = "Aug" ;
	MonthName[9] = "Sep" ;
	MonthName[10] = "Oct" ;
	MonthName[11] = "Nov" ;
	MonthName[12] = "Dec" ;
	var Sel = 0 ;
	var j = 0 ;
	for (var i=(TYY-5); i<=(TYY+5); i++ )
	{
		SY.options[j] = new Option(SY,SY,true,true,true) ;
		SY.options[j].text = i ;
		SY.options[j].value =  i ;
		if (i == TYY)
		{
			Sel = j ;
		}
		j++;
	}
	SY.options[Sel].selected = true ;

	j = 0 ;
	for (var i=1;i<=12 ;i++ )
	{
		var ValI = i ;
		ValI = (ValI<10)?"0"+i:i;
		SM.options[j] = new Option(SM,SM,true,true,true) ;
		SM.options[j].text = MonthName[i] ;
		SM.options[j].value = ValI ;
		if (i == TMM)
		{
			Sel = j ;
		}
		j++;
	}
	SM.options[Sel].selected = true ;

	var LongDate = (TMM==1 || TMM==3 || TMM==5 || TMM==7 || TMM==8 || TMM==10 || TMM==12)?31:30;
	if (TMM == 2)
	{
		LongDate = (TYY%4==0)?29:28;
	}
	j = 0 ;
	for (var i=1;i<=LongDate ;i++ )
	{
		var ValI = i ;
		ValI = (ValI<10)?"0"+i:i;
		SD.options[j] = new Option(SD,SD,true,true,true) ;
		SD.options[j].text = i ;
		SD.options[j].value = ValI ;
		if (i == TDD)
		{
			Sel = j ;
		}
		j++;
	}
	SD.options[Sel].selected = true ;
}

function Trim(S) {
	S = S.replace(/\s*$/g,"");
	S = S.replace(/^\s*/g,"");
	return S ;
}

function DisplayForm(DivObj) {
	MyDivObj = DivObj ;
    var url = "streaming.cgi?SURL="+MyUrl+"enquiry.htm&Ref="+Math.round(Math.random(0,1)*100000000000);
    //document.getElementById(DivObj).innerHTML = url;
	Global_Request("Form",url);
}

function DrawForm(D) {
	D = Trim(D) ;
	var Cvs = document.getElementById(MyDivObj);
	Cvs.innerHTML = D ;

	var F = eval('document.MyInitialForm');

	F.CName.value = MyCompanyName ;
	F.CEmail.value = MyCompanyEmail ;

	var T = document.getElementById('EQTitle');
	T.innerHTML = MyTitle.Word ;
	T.style.fontSize = MyTitle.FontSize ;
	T.style.color = MyTitle.Color ;
	T.style.fontWeight = MyTitle.Weight ;
	T.style.fontFamily = MyFont ;
	F.FullTitle.value = MyTitle.Word ;

	var MT = document.getElementById('MainTable');
	MT.bgColor = MyBackGroundColor ;
	var TRS = MT.childNodes[MT.childNodes.length-1].childNodes ;
	for (var i = 0; i< TRS.length; i++) {
		if (TRS[i].innerHTML)
		{
			var TDS = TRS[i].childNodes ;
			for (var j = 0; j< TDS.length; j++) {
				if (TDS[j].innerHTML)
				{
					TDS[j].style.fontSize = MySubTitle.FontSize ;
					TDS[j].style.color = MySubTitle.Color ;
					TDS[j].style.fontWeight = MySubTitle.Weight ;
					TDS[j].style.fontFamily = MyFont ;
				}
			}
		}
	}

	if (MyAddInfo.length>0)
	{
		F.AddTotal.value = MyAddInfo.length ;
		var AI = document.getElementById('AddInfo');
		var N = "<table>" ;
		for (var i=0; i<MyAddInfo.length; i++)
		{
			N += "<tr><td valign=top style=\"font-size:"+MyContent.FontSize+"; font-family:"+MyFont+"; font-weight:"+MyContent.Weight+"; color:"+MyContent.Color+";\" width=120>"+MyAddInfo[i].Word+"</td>" ;
			N += "<td valign=top style=\"font-size:"+MyContent.FontSize+"; font-family:"+MyFont+"; font-weight:"+MyContent.Weight+"; color:"+MyContent.Color+";\" width=10>:</td>" ;
			if (MyAddInfo[i].Type.toLowerCase() == 'select') {
				var SelOption = "" ;
				for (var j=0; j<MyAddInfo[i].Value.length; j++)
				{
					D = MyAddInfo[i].Value[j] ;
					V = D.replace("\"","\\\"");
					SelInd = (MyAddInfo[i].Selected == j)?"selected":"";
					SelOption += "<option "+SelInd+" value=\""+V+"\">"+D+"</option>" ;
				}
				N += "<td valign=top style=\"font-size:"+MyContent.FontSize+"; font-family:"+MyFont+"; font-weight:"+MyContent.Weight+"; color:"+MyContent.Color+";\"><input type=hidden size=30 name=AddInfoText"+i+" value=\""+MyAddInfo[i].Word+"\"><select name=AddInfo"+i+">"+SelOption+"</select></td></tr>" ;
			} else if (MyAddInfo[i].Type.toLowerCase() == 'multiple') {
				var SelOption = "" ;
				var CheckedInd = new Array();
				if (MyAddInfo[i].Checked)
				{
					for (var k in CheckedInd)
					{
						CheckedInd[k] = "" ;
					}
					var Arr = MyAddInfo[i].Checked.split(",");
					for (var k=0; k<Arr.length; k++)
					{
						CheckedInd[Arr[k]] = "1" ;
					}
				}
				for (var j=0; j<MyAddInfo[i].Value.length; j++)
				{
					var CheckedStatus = (CheckedInd[j]==1)?"checked":"" ;
					D = MyAddInfo[i].Value[j] ;
					V = D.replace("\"","\\\"");
					SelOption += "<input type=checkbox "+CheckedStatus+" name=AddInfo"+i+" value=\""+V+"\">"+D+"<br>" ;
				}
				N += "<td valign=top style=\"font-size:"+MyContent.FontSize+"; font-family:"+MyFont+"; font-weight:"+MyContent.Weight+"; color:"+MyContent.Color+";\"><input type=hidden size=30 name=AddInfoText"+i+" value=\""+MyAddInfo[i].Word+"\">"+SelOption+"</td></tr>" ;
			} else if (MyAddInfo[i].Type.toLowerCase() == 'multiline') {
				N += "<td valign=top style=\"font-size:"+MyContent.FontSize+"; font-family:"+MyFont+"; font-weight:"+MyContent.Weight+"; color:"+MyContent.Color+";\"><input type=hidden size=30 name=AddInfoText"+i+" value=\""+MyAddInfo[i].Word+"\"><textarea cols=30 rows="+MyAddInfo[i].Rows+" name=AddInfo"+i+"></textarea></td></tr>" ;
			} else {
				N += "<td valign=top style=\"font-size:"+MyContent.FontSize+"; font-family:"+MyFont+"; font-weight:"+MyContent.Weight+"; color:"+MyContent.Color+";\"><input type=hidden size=30 name=AddInfoText"+i+" value=\""+MyAddInfo[i].Word+"\"><input size=40 name=AddInfo"+i+"></td></tr>" ;
			}
			N += "<tr><td colspan=3><img src=\"http://www.street-directory.com.au/aus_new/images/blank.gif\" height=3 width=1></td></tr>" ;
		}
		N += "</table>" ;
		AI.innerHTML = N ;
	}

	var PS = document.getElementById('PersonalInfo');
	var PSTRS = PS.childNodes[PS.childNodes.length-1].childNodes ;
	for (var i = 0; i< PSTRS.length; i++) {
		if (PSTRS[i].innerHTML)
		{
			var PSTDS = PSTRS[i].childNodes ;
			for (var j = 0; j< PSTDS.length; j++) {
				if (PSTDS[j].innerHTML)
				{
					PSTDS[j].style.fontSize = MyContent.FontSize ;
					PSTDS[j].style.color = MyContent.Color ;
					PSTDS[j].style.fontWeight = MyContent.Weight ;
					PSTDS[j].style.fontFamily = MyFont ;
				}
			}
		}
	}

	var EQ = document.getElementById('YEnq');
	EQ.innerHTML = MyEnquiry.Word ;
	F.YName.value = MyEnquiry.Word ;

	var PS2 = document.getElementById('PersonalInfo2');
	var PS2TRS = PS2.childNodes[PS2.childNodes.length-1].childNodes ;
	for (var i = 0; i< PS2TRS.length; i++) {
		if (PS2TRS[i].innerHTML)
		{
			var PS2TDS = PS2TRS[i].childNodes ;
			for (var j = 0; j< PS2TDS.length; j++) {
				if (PS2TDS[j].innerHTML)
				{
					PS2TDS[j].style.fontSize = MyContent.FontSize ;
					PS2TDS[j].style.color = MyContent.Color ;
					PS2TDS[j].style.fontWeight = MyContent.Weight ;
					PS2TDS[j].style.fontFamily = MyFont ;
				}
			}
		}
	}
}

function DrawSent(D) {
	D = Trim(D) ;
	var Cvs = document.getElementById(MyDivObj);
	Cvs.innerHTML = D ;

	var T = document.getElementById('EQTitle');
	T.innerHTML = MyTitle.Word ;
	T.style.fontSize = MyTitle.FontSize ;
	T.style.color = MyTitle.Color ;
	T.style.fontWeight = MyTitle.Weight ;
	T.style.fontFamily = MyFont ;

	var MT = document.getElementById('MainTable');
	MT.bgColor = MyBackGroundColor ;
	var TRS = MT.childNodes[MT.childNodes.length-1].childNodes ;
	for (var i = 0; i< TRS.length; i++) {
		if (TRS[i].innerHTML)
		{
			var TDS = TRS[i].childNodes ;
			for (var j = 0; j< TDS.length; j++) {
				if (TDS[j].innerHTML)
				{
					TDS[j].style.fontSize = MyContent.FontSize ;
					TDS[j].style.color = MyContent.Color ;
					TDS[j].style.fontWeight = MyContent.Weight ;
					TDS[j].style.fontFamily = MyFont ;
				}
			}
		}
	}


}

function getDebug(str)
{
    document.getElementById('debug').innerHTML = str;
}

function SentEmail(Url) {
    var url = "streaming.cgi?SURL="+MyUrl+"streaming.cgi&TURL=enquiry.cgi&"+Url;
    //getDebug(url);
	Global_Request("Sent",url);
}

function RequestDone(ID,http_request) {
	if (ID == 'Form')
	{
		DrawForm(http_request.responseText);
	} else if (ID == 'Sent')
	{
		DrawSent(http_request.responseText);
	}
}

function Global_RequestReady(ID,http_request) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			RequestDone(ID,http_request) ;
		}
	}
}

function Global_Request(ID,url) {

	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		//alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() { Global_RequestReady(ID,http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);
}

