/*
	Main.js
	
	This file contains any necessary javascript functions used by the application
	
	History:
	2/2/05 - oarevalo - created

*/

function popup(href,width,height,name) {
	var xPosition = calXPosition(width);
	var yPosition = calYPosition(height);
	var props = "toolbar=no, location=no, scrollbars=no, resizable=no, width=" 
					+ width + ", height=" + height + ", left=" 
					+ xPosition + ", top=" + yPosition + ", screenX=" 
					+ xPosition + ", screenY=" + yPosition;
	if(name==null || name=="") name="window";
	win = window.open(href,name, props);
	win.focus();
}
function popupNormal(href,width,height,name) {
	var xPosition = calXPosition(width);
	var yPosition = calYPosition(height);
	var props = "status=1,toolbar=0,location=0,";
	props = props + "menubar=1,scrollbars=1,resizable=1";
	props = props + ",height=" + height + ",width=" + width;
	props = props + ",left=" + xPosition + ",top=" + yPosition;
	props = props + ",screenX=" + xPosition + ",screenY=" + yPosition;
	if(name==null || name=="") name="window";
	win = window.open(href,name,props);
	win.focus();
}
// Returns the x and y positions to center a popup window
function calXPosition(winWith) {
	var screenWith = screen.width;
	var xPosition = (screenWith / 2) - (winWith / 2);
	return xPosition;
}

function calYPosition(winHeight) {
	var screenHeight = screen.height;
	var yPosition = (screenHeight / 2) - (winHeight / 2);
	return yPosition;
}

function openCal(src,ifrID) {
	ifr = document.getElementById(ifrID);
	ifr.src = src;
	ifr.style.display = "block";
}
function closeCal(ifrID) {
	ifr = document.getElementById(ifrID);
	ifr.src = "";
	ifr.style.display = "none";
}

function setDateField(nn,mm,dd,yy) {
	// set the value for the date field
	nn.value = mm.value + "/"
				+ dd.value + "/"
				+ yy.value;
	if(mm.value=="" && dd.value=="" && yy.value=="") nn.value = "";
}

function setTimeField(nn,hh,mm,tt) {
	// set the value for the date field
	var tmpHH = parseFloat(hh.value);
	if(tt.value=="PM" & tmpHH<12) tmpHH = tmpHH+12;
	if(tt.value=="AM" & tmpHH==12) tmpHH = 0;
	nn.value = tmpHH + ":" + mm.value;
	if(hh.value=="" && mm.value=="") nn.value = "";
}

function passwordCheck(obj,tgt) {
	var d = document.getElementById(tgt);
	var p = obj.value;
	var pwdOK;

	if(p.length>=8) 
		d.src = "images/icon_check.gif";
	else
		d.src = "images/icon_cross.gif";

	return (p.length>=8);
}

function password2Check(obj1,obj2,tgt) {
	var d = document.getElementById(tgt);
	var p1 = obj1.value;
	var p2 = obj2.value;
	
	if(p1==p2 && p1!="") 
		d.src = "images/icon_check.gif";
	else
		d.src = "images/icon_cross.gif";

	return (p1==p2 && p1!="");
}

function regAccountForm_check(frm) {
	var e = frm.email.value;

	if(passwordCheck(frm.password,"imgPasswordStatus") && password2Check(frm.password2,frm.password,"imgPassword2Status") && checkEmail(e)
		&& frm.First_Name.value!=""
		&& frm.Last_Name.value!=""
		&& frm.phoneNumber.value!="") 
		return true;
	else {
		if(!checkEmail(e)) {alert("Please enter a valid email address."); return false;}
		if(frm.First_Name.value=="" || frm.Last_Name.value=="")
			{alert("Please enter your first and last names"); return false;}
		if(frm.phoneNumber.value=="")
			{alert("Please enter your phone number"); return false;}
		if(!passwordCheck(frm.password,"imgPasswordStatus")) {alert("Passwords must be at least 8 characters long."); return false;}
		if(!password2Check(frm.password2,frm.password,"imgPassword2Status")) {alert("Both passwords do not match."); return false;}
	}
}

function editProfileForm_check(frm) {
	var e = frm.email.value;
	if( checkEmail(e)
		&& frm.First_Name.value!=""
		&& frm.Last_Name.value!=""
		&& frm.PhoneNumber.value!="") 
		return true;
	else {
		if(!checkEmail(e)) {alert("Please enter a valid email address."); return false;}
		if(frm.First_Name.value=="" || frm.Last_Name.value=="")
			{alert("Please enter your first and last names"); return false;}
		if(frm.phoneNumber.value=="")
			{alert("Please enter your phone number"); return false;}
	}	
}


function changePasswordForm_check(frm) {
	var pwdOK = (frm.passwordNew.value == "") ||
				(
					 passwordCheck(frm.password,"imgPasswordStatus") 
					&& passwordCheck(frm.passwordNew,"imgPasswordNewStatus") 
					&& password2Check(frm.passwordNew2,frm.passwordNew,"imgPasswordNew2Status")
				 )
	if( pwdOK ) 
		return true;
	else {
		if(!passwordCheck(frm.password,"imgPasswordStatus")) {alert("Current password must be at least 8 characters long."); return false;}
		if(!passwordCheck(frm.passwordNew,"imgPasswordNewStatus")) {alert("New password must be at least 8 characters long."); return false;}
		if(!password2Check(frm.passwordNew2,frm.passwordNew,"imgPasswordNew2Status")) {alert("Both new passwords do not match."); return false;}
	}	
}

function checkEmail(str)
{
	var tlds = ".ac .ad .ae .af .ag .ai .al .am .an .ao .aq .ar .as .at .au .aw .ax .az .ba .bb .bd .be " 
	+".bf .bg .bh .bi .bj .bm .bn .bo .br .bs .bt .bu .bv .bw .by .bz .ca .cc .cd .cf .cg .ch .ci .ck .cl .cm "
	+".cn .co .cr .cs .cu .cv .cx .cy .cz .dd .de .dj .dk .dm .do .dz .ec .ee .eg .eh .er .es .et .eu .fi .fj "
	+".fk .fm .fo .fr .ga .gb .gd .ge .gf .gg .gh .gi .gl .gm .gn .gp .gq .gr .gs .gt .gu .gw .gy .hk .hm " 
	+".hn .hr .ht .hu .id .ie .il .im .in .io .iq .ir .is .it .je .jm .jo .jp .ke .kg .kh .ki .km .kn .kp .kr .kw .ky .kz " 
	+".la .lb .lc .li .lk .lr .ls .lt .lu .lv .ly .ma .mc .md .mg .mh .mk .ml .mm .mn .mo .mp .mq .mr .ms .mt " 
	+".mu .mv .mw .mx .my .mz .na .nc .ne .nf .ng .ni .nl .no .np .nr .nu .nz .om .pa .pe .pf .pg .ph " 
	+".pk .pl .pm .pn .pr .ps .pt .pw .py .qa .re .ro .ru .rw .sa .sb .sc .sd .se .sg .sh .si .sj .sk .sl .sm "
	+".sn .so .sr .st .su .sv .sy .sz .tc .td .tf .tg .th .tj .tk .tl .tm .tn .to .tp .tr .tt .tv .tw .tz .ua .ug .uk " 
	+".um .us .uy .uz .va .vc .ve .vg .vi .vn .vu .wf .ws .ye .yt .yu .za .zm .zr .zw .com .net .org " 
	+".mil .gov .edu .nato .info .int .name .biz .museum .pro";
	var myRegex = new RegExp("^[A-Za-z0-9\.\-_]+@[A-Za-z0-9\.\-_]+\.[A-Za-z]+$")
	var endofString = str.split('.');
	var ending = endofString.length - 1;
	var tld = endofString[ending];
	if (! str.match(myRegex)) 
		return false;
	else if (tlds.search(tld) < 0 && tlds.search(tld.toLowerCase()) < 0) 
		return false;
	else
		return true;
}

function toggleVis(id) {
	var t = document.getElementById(id);
	if(t) {
		if(t.style.display != "block")
			t.style.display = "block";
		else
			t.style.display = "none";
	}
}

function showAddFlightForm(io,leg) {
	var frm = document.frmFlightInfo;
	//frm.event.value = (leg==1)?"":"saveFlightInfo";
	frm.showNew.value = io;
	frm.submit();
}

function deleteRegBooking(index) {
	if(confirm("Are you sure you wish to delete this registration request?")) {
		frm = document.frmRegister;
		frm.event.value = "ehPreferences.doDeleteRegBooking";
		frm.RegIndex.value = index;
		frm.submit();
	}
}

function addRegBooking() {
	frm = document.frmRegister;
	frm.event.value = "ehPreferences.doAddRegBooking";
	frm.submit();
}

function saveRegBookings() {
	frm = document.frmRegister;
	frm.event.value = "ehPreferences.doSaveRegBookings";
	frm.submit();
}

function toggleEvent(eventID) {
	dOpen = $("eOpen_"+eventID);
	dClosed = $("eOpen_"+eventID);
			
	if(dOpen.style.display=='none') {
		new Effect.BlindDown(dOpen);
	} else {
		new Effect.BlindUp(dClosed);
	}
}
