function checkTell(form) {
	var addy=form.email.value;
	var check_prot = addy.indexOf('@');
	var check_dot = addy.indexOf('.');
	if ((check_prot == -1) || (check_dot == -1)) {
		form.email.focus();
	       	return false;
	       	}
   	return true;
  	}

function popUp(URL,w,h) {
	winl = (screen.width - w) / 2;
	wint = (screen.height - h) / 2;
	day = new Date();
	id = day.getTime();
	eval("eventPage" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,status=1,menubar=0,resizable=1,width="+w+",height="+h+",top="+wint+",left="+winl+"');");
	}


var offsetxpoint=-60;
var offsetypoint=20;



var ie=document.all;
var ns6=document.getElementById && !document.all;
var enabletip=false;
if (ie||ns6) { var tipobj=document.all? document.all["eventDetails"] : document.getElementById? document.getElementById("eventDetails") : "" }

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
	}

function eventDetailsBox(theText){
	if (ns6||ie){
		tipobj.innerHTML=theText;
		enabletip=true;
		return false;
		}
	}

function positiontip(e){
	if (enabletip){
		var curX=(ns6)?e.pageX : event.x+ietruebody().scrollLeft;
		var curY=(ns6)?e.pageY : event.y+ietruebody().scrollTop;
		var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
		var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

		var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

		if (rightedge<tipobj.offsetWidth)
			tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
		else if (curX<leftedge)
			tipobj.style.left="5px"
		else
			tipobj.style.left=curX+offsetxpoint+"px"

		if (bottomedge<tipobj.offsetHeight)
			tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
		else
			tipobj.style.top=curY+offsetypoint+"px"
			tipobj.style.visibility="visible"
			}
	}

function hideEventDetailsBox(){
	if (ns6||ie){
		enabletip=false
		tipobj.style.visibility="hidden"
		tipobj.style.left="-1000px"
		tipobj.style.backgroundColor=''
		tipobj.style.width=''
		}
	}

document.onmousemove=positiontip

function trim(inputString) {
        if (typeof inputString != "string") { return inputString; }
   	var retValue = inputString;
   	var ch = retValue.substring(0, 1);
   	while (ch == " ") {
      		retValue = retValue.substring(1, retValue.length);
      		ch = retValue.substring(0, 1);
   		}
   	ch = retValue.substring(retValue.length-1, retValue.length);
   	while (ch == " ") {
      		retValue = retValue.substring(0, retValue.length-1);
      		ch = retValue.substring(retValue.length-1, retValue.length);
   		}
   	while (retValue.indexOf("  ") != -1) {
      		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
   		}
   	return retValue;
	}

function checkSearch(form) {
	if (trim(form.criteria.value) == "") {
		form.criteria.focus();
		return false;
		}
	return true;
	}

function checkAdvSearch(form) {
	
	// modified by tmc 20060719 - start 
	/*
	if (trim(form.title_criteria.value) == "" && trim(form.desc_criteria.value) == "" && trim(form.location_criteria.value) == "" && trim(form.contact_criteria.value) == "") {
		form.title_criteria.focus();
		return false;
		}
	*/
	
	if ( (form.title_criteria) && (form.desc_criteria) && (form.location_criteria) && 
	     (form.contact_criteria) && (form.country_criteria) && (form.city_criteria) && (form.category_criteria)) {
	  
	  if ( (trim(form.title_criteria.value) == "" ) &&  (trim(form.desc_criteria.value) == "" ) && 
	       (trim(form.location_criteria.value) == "" ) &&  (trim(form.contact_criteria.value) == "" ) && 
	        (trim(form.country_criteria.value) == "All" ) &&  (trim(form.city_criteria.value) == "" ) && 
	         (trim(form.category_criteria.value) == "0" ) ) {
	     return false    
	  }
	}
	// modified by tmc 20060719 - end 
	
	return true;
	}

function checkLogin(form) {
	if (trim(form.username.value) == "") {
		form.username.focus();
		return false;
		}
	if (trim(form.password.value) == "") {
		form.password.focus();
		return false;
		}
	return true;
	}

function checkCreate(form) {
	if (trim(form.username.value) == "") {
		form.username.focus();
		return false;
		}
	if (trim(form.email.value) == "") {
		form.email.focus();
		return false;
		}
	if (form.email.value != "") {
	        var email=form.email.value;
	        var check_space = email.indexOf(' ');
	        var check_ast = email.indexOf('@');
	        var check_dot = email.indexOf('.');
	        if ((check_space != -1) || (check_ast == -1) || (check_dot == -1)) {
		         form.email.focus();
		         return false;
		         }
		}
	if (trim(form.password1.value) == "") {
		form.password1.focus();
		return false;
		}
	if (trim(form.password2.value) == "") {
		form.password2.focus();
		return false;
		}
	if (trim(form.password1.value) != trim(form.password2.value)) {
		form.password1.focus();
		return false;
		}
	return true;
	}

function checkQuestion(form) {
	if (trim(form.question.value) == "") {
		form.question.focus();
		return false;
		}
	return true;
	}

function checkEvent(form) {

	// deleted by tmc 20060625 - start
	/*
	if (trim(form.eventTitle.value) == "") {
		form.eventTitle.focus();
		return false;
		}
	if (trim(form.eventDescription.value) == "") {
		form.eventDescription.focus();
		return false;
		}
	return false;		
	}
	*/
	// deleted by tmc 20060625 - end 
	
	// added by tmc 20060711 - start
	var dataOK = "y";
	
	// check reason change.  
	if ( (form.reason) && (trim(form.reason.value) == "" ) ){
		var text = document.getElementById('ReasonChangeErrorMsg');
		text.style.display = '';
		dataOK ="n"; 
		form.reason.focus();
	} else if (form.reason){
		var text = document.getElementById('ReasonChangeErrorMsg');
		text.style.display = 'none';	
	} 

	// check registration required.
	/* 
	// modified by do 20100810 - start
	if (form.rsvpRequired){
		var value1 ="";
		for (var i=0; i< form.rsvpRequired.length;i++ ){
			if (form.rsvpRequired[i].checked){
				value1=form.rsvpRequired[i].value;
			}
		}
		if (value1 == "") {
			var text = document.getElementById('RegistrationRequiredErrorMsg');
			text.style.display = '';
			dataOK ="n";
			form.rsvpRequired[0].focus();
		} else {
			var text = document.getElementById('RegistrationRequiredErrorMsg');
			text.style.display = 'none';			
		}
	} else {
		var text = document.getElementById('RegistrationRequiredErrorMsg');
		text.style.display = 'none';	
	}
	// modified by do 20100810 - end
	*/

	// check event url
	/*
	if ( (form.eventURL) && (form.eventURL.value != "" ) ){
		
		var v = new RegExp();  
		// v.compile("^[http]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); 
		v.compile("^[http]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); 
		if (!v.test(form.eventURL.value)) { 
			var text = document.getElementById('EventUrlErrorMsg');
			text.style.display = '';
			dataOK ="n";
			form.eventURL.focus();
		 } else {
			var text = document.getElementById('EventUrlErrorMsg');
			text.style.display = 'none';
		 }

		
	} else {
		var text = document.getElementById('EventUrlErrorMsg');
		text.style.display = 'none';	
	}
	*/
	
	/*************** CHECK EVENT URL ***************/
	/***** Alex Chow Coding Modification START *****/
	if ( (form.eventURL) && (form.eventURL.value != "" ) ){
		
		
		/*
		var httpexp = new RegExp();
		var nohttpexp = new RegExp();
		httpexp.compile("^[http]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$"); 
		nohttpexp.compile("^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
		
		//alert(form.eventURL.value + " " + (nohttpexp.test(form.eventURL.value) == true)?true:false);
		
		if(!nohttpexp.test(form.eventURL.value)){
		*/
		
		if ( (form.eventURL.value.substr(0,5)=="http:") || 
			(form.eventURL.value.substr(0,6)=="https:") )
		{
			var text = document.getElementById('EventUrlErrorMsg');
			text.style.display = '';
			dataOK ="n";
			form.eventURL.focus();
		
		}else{
			var text = document.getElementById('EventUrlErrorMsg');
			text.style.display = 'none';
		}

	} else {
		var text = document.getElementById('EventUrlErrorMsg');
		text.style.display = 'none';	
	}
	/***** Alex Chow Coding Modification END *****/

	// check contact email.  
	if ( (form.eventEmail) && (form.eventEmail.value == "" ) ){
		var text = document.getElementById('ContactEmailErrorMsg');
		text.style.display = '';
		dataOK ="n";
		form.eventEmail.focus();
	} else {
		var text = document.getElementById('ContactEmailErrorMsg');
		text.style.display = 'none';	
	}
	
	// check contact name.  
	if ( (form.eventContact) && (form.eventContact.value == "" ) ){
		var text = document.getElementById('ContactNameErrorMsg');
		text.style.display = '';
		dataOK ="n";
		form.eventContact.focus();
	} else {
		var text = document.getElementById('ContactNameErrorMsg');
		text.style.display = 'none';	
	}
	
	// check venue address.
	if ( (form.eventLocation2) && (form.eventLocation2.value == "" ) ){
		var text = document.getElementById('VenueAddressErrorMsg');
		text.style.display = '';
		dataOK ="n";
		form.eventLocation2.focus();
	} else {
		var text = document.getElementById('VenueAddressErrorMsg');
		text.style.display = 'none';	
	}

	// check venue.  
	if ( (form.eventLocation1) && (form.eventLocation1.value == "" ) ){
		var text = document.getElementById('VenueErrorMsg');
		text.style.display = '';
		dataOK ="n";
		form.eventLocation1.focus();
	} else {
		var text = document.getElementById('VenueErrorMsg');
		text.style.display = 'none';	
	}
	
	// check event time. 
	if (form.isAdmin.value == "1") {
		if (form.eventAllDay.checked ) {
			var text = document.getElementById('EventTimeErrorMsg');
			text.style.display = 'none';		
		} else {
			if ( (form.eventStartHour) && (form.eventStartMinute) 
			&& (form.eventEndHour) && (form.eventEndMinute) && (form.eventAllDay) ) {
				if ( (form.eventStartHour.value == "") || (form.eventStartMinute.value =="") 
					|| (form.eventEndHour.value == "") || (form.eventEndMinute.value == "" )) {
					var text = document.getElementById('EventTimeErrorMsg');
					text.style.display = '';
					dataOK ="n";;
					form.eventStartHour.focus();
				} else {
					var text = document.getElementById('EventTimeErrorMsg');
					text.style.display = 'none';			
				}
			} else {
				var text = document.getElementById('EventTimeErrorMsg');
				text.style.display = 'none';	
			}
		} 
		
	} else {
		if ( (form.eventStartHour) && (form.eventStartMinute) 
		&& (form.eventEndHour) && (form.eventEndMinute) && (form.eventAllDay) ) {
			if ( ( (form.eventStartHour.value == "") || (form.eventStartMinute.value =="") 
				|| (form.eventEndHour.value == "") || (form.eventEndMinute.value == "" )) 
			   && (form.eventAllDay != '1') ){
				var text = document.getElementById('EventTimeErrorMsg');
				text.style.display = '';
				dataOK ="n";;
				form.eventStartHour.focus();
			} else {
				var text = document.getElementById('EventTimeErrorMsg');
				text.style.display = 'none';			
			}
		} else {
			var text = document.getElementById('EventTimeErrorMsg');
			text.style.display = 'none';	
		}
	}

	// check event date.  
	if ( (form.eventDay) && (form.eventMonth) && (form.eventYear) ) {
		if ( (form.eventDay.value == "") || (form.eventMonth.value =="") 
			|| (form.eventYear.value == "" ) ) {
			var text = document.getElementById('EventDateErrorMsg');
			text.style.display = '';
			dataOK ="n";
			var text1 = document.getElementById('EventInvalidDateErrorMsg');
			text1.style.display = 'none';
			form.eventDay.focus();
		} else if ( !checkValidDate(form.eventDay.value, form.eventMonth.value, form.eventYear.value )) {
			var text = document.getElementById('EventDateErrorMsg');
			text.style.display = 'none';
			var text1 = document.getElementById('EventInvalidDateErrorMsg');
			text1.style.display = '';
			dataOK ="n";
			form.eventDay.focus();	
		} else {
			var text = document.getElementById('EventDateErrorMsg');
			text.style.display = 'none';		
			var text1 = document.getElementById('EventInvalidDateErrorMsg');
			text1.style.display = 'none';
		}
	}else {
		var text = document.getElementById('EventDateErrorMsg');
		text.style.display = 'none';	
		var text1 = document.getElementById('EventInvalidDateErrorMsg');
		text1.style.display = 'none';	
	}

	// check event category
	if ( (form.eventCategory) && (form.eventCategory.value == "" ) ){
		var text = document.getElementById('EventCategoryErrorMsg');
		text.style.display = '';
		dataOK ="n";
		form.eventCategory.focus();
	} else {
		var text = document.getElementById('EventCategoryErrorMsg');
		text.style.display = 'none';		
	}

	// check event title.
	if ( (form.eventTitle) && (form.eventTitle.value == "" ) ){
		var text = document.getElementById('EventTitleErrorMsg');
		text.style.display = '';
		dataOK ="n";
		form.eventTitle.focus();
	} else {
		var text = document.getElementById('EventTitleErrorMsg');
		text.style.display = 'none';		
	}
	
	if ( (form.isAdmin.value == "1") && (form.editMode.value == 0) ) {

		// check city 
		if ( (form.city) && (form.city.value == "" ) ){
			var text = document.getElementById('CityErrorMsg');
			text.style.display = '';
			dataOK ="n";
			form.city.focus();
		} else {
			var text = document.getElementById('CityErrorMsg');
			text.style.display = 'none';	
		}
		
		// check country
		if ( (form.country) && (form.country.value == "" ) ){
			var text = document.getElementById('CountryErrorMsg');
			text.style.display = '';
			dataOK ="n";
			form.country.focus();
		} else {
			var text = document.getElementById('CountryErrorMsg');
			text.style.display = 'none';		
		}		
	
		// check calendar
		if ( (form.calendarID) && (form.calendarID.value == "-1" ) ){
			var text = document.getElementById('CalendarErrorMsg');
			text.style.display = '';
			dataOK ="n";
			form.calendarID.focus();
		} else {
			var text = document.getElementById('CalendarErrorMsg');
			text.style.display = 'none';		
		}

	} 

	if (dataOK =="y") {
		return true;
	} else {
		return false;
	}
	// added by tmc 20060711 - end 

	return true;
}

function checkForgot(form) {
	if (trim(form.code.value) == "") {
		form.code.focus();
		return false;
		}
	if (trim(form.pwd1.value) == "") {
		form.pwd1.focus();
		return false;
		}
	if (trim(form.pwd1.value) == "") {
		form.pwd1.focus();
		return false;
		}
	if(form.pwd1.value != form.pwd2.value) {
		form.pwd1.focus();
		return false;
		}
	return true;
	}


function rei_replace (regexp, replacement, subject){
    	result = subject.replace( new RegExp(regexp,'gi'),  replacement);
    	return result;
	}

function toHtml(text){
    	// Convert near-URL tags to HTML
    	text = rei_replace ("([\n ])([a-z]+?)://([^, \n\r]+)", "$1<a href=\"$2://$3\" target=\"_blank\">$2://$3</a>", text);
    	text = rei_replace ("([\n ])www\\.([a-z0-9\-]+)\.([a-z0-9\\-.\\~]+)((?:/[^, \n\r]*)?)", "$1<a href=\"http://www.$2.$3$4\" target=\"_blank\">www.$2.$3$4</a>", text);
    	text = rei_replace ("([\n ])([a-z0-9\\-_.]+?)@([^, \n\r]+)","$1<a href=\"mailto:$2@$3\">$2@$3</a>", text);

    	// Convert URL tags to HTML
    	text = rei_replace ("\\[url\\]ftp://([^\\[]*?)\\[/url\\]", "<a href=\"ftp://$1\" target=\"_blank\">ftp://$1</a>", text);
    	text = rei_replace("\\[url\\]http://([^\\[]*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">http://$1</a>",text);
    	text = rei_replace("\\[url\\]https://([^\\[]*?)\\[/url\\]","<a href=\"https://$1\" target=\"_blank\">https://$1</a>",text);
    	text = rei_replace("\\[url\\]([^\\[]*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">$1</a>",text);
    	text = rei_replace("\\[url=http://(.*?)\\](.*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">$2</a>",text);
    	text = rei_replace("\\[url=https://(.*?)\\](.*?)\\[/url\\]","<a href=\"https://$1\" target=\"_blank\">$2</a>",text);
    	text = rei_replace("\\[url=(.*?)\\](.*?)\\[/url\\]","<a href=\"http://$1\" target=\"_blank\">$2</a>",text);

    	// Convert IMG tags to HTML
    	text = rei_replace("\\[img\\]([^\\[]*?)\\[img\\]","<img src=\"$1\">",text);

    	// Convert bolds,italics,underline and strike
    	text = rei_replace ("\\[b\\]","<b>",text);
    	text = rei_replace ("\\[\\/b\\]","</b>",text);
    	text = rei_replace ("\\[i\\]","<i>",text);
    	text = rei_replace ("\\[\\/i\\]","</i>",text);
    	text = rei_replace ("\\[u\\]","<u>",text);
    	text = rei_replace ("\\[\\/u\\]","</u>",text);
    	text = rei_replace ("\\[s\\]","<strike>",text);
    	text = rei_replace ("\\[\\/s\\]","</strike>",text);

    	// Alignment
    	text = rei_replace ("\\[right\\]","<div style=\"text-align:right\">",text);
    	text = rei_replace ("\\[\\/right\\]","</div>",text);
    	text = rei_replace ("\\[justify\\]","<div style=\"text-align:justify;\">",text);
    	text = rei_replace ("\\[\\/justify\\]","</div>",text);
    	text = rei_replace ("\\[center\\]","<div style=\"text-align:center\">",text);
    	text = rei_replace ("\\[\\/center\\]","</div>",text);

    	// Convert the color codes
    	text = rei_replace("\\[color=(.*?)\\](.*?)","<span style=\"color:$1\">$2",text);
    	text = rei_replace("\\[\\/color\\]","</span>",text);

    	// Convert sizes
    	text = rei_replace("\\[size=(.*?)\\](.*?)","<span style=\"font-size:$1pt\">$2",text);
    	text = rei_replace("\\[\\/size\\]","</span>",text);

    	// Convert fonts
    	text = rei_replace("\\[font=(.*?)\\](.*?)","<span style=\"font-family:$1\">$2",text);
    	text = rei_replace("\\[\\/font\\]","</span>",text);

    	// Do list elements
    	text = rei_replace("(\\[list\\])\n?\r?(.+?)(\\[\\/list\\])s","<ul type=\"square\">$2</ul>",text);
    	text = rei_replace("(\\[list=)(A|1)(\\])\n?\r?(.+?)(\\[\\/list\\])s","<ol type=\"$2\">$4</ol>",text);
    	text = rei_replace("\n?\r?(\\[\\*\\])s","<li>",text);

    	// Quote markup
    	text = rei_replace ("\\[quote\\]","<blockquote>Quote:<hr /><br />",text);
    	text = rei_replace ("\\[\\/quote\\]","<br /><br /><hr /></blockquote>",text);

    	// Convert newlines
    	text = rei_replace ("\n","<br clear=\"all\">",text);
    	text = rei_replace ("\r\n","<br clear=\"all\">",text);
    	text = rei_replace ("\r","",text);
     	return text;
	}

// added by tmc 20060711 - start
function register(eventID){

	// newLocation="account.php?action=reserve&type=rsvp&event=" + eventID + "&option=1&mainloginrequired=y&calendarloginrequired=y";
	newLocation="account.php?action=reserve&type=rsvp&event=" + eventID + "&option=1&mainloginrequired=y&calendarloginrequired=y";
	newLocation = newLocation + "&closeWindow=true";
	// opener.document.location=newLocation;
	document.location.href=newLocation;

}

function goToTellAFriend(calendarID, eventID, eventDate) {
	
	newLocation="account.php?action=tell&calendar="+ calendarID + "&event=" + eventID + "&date=" + eventDate + "&mainloginrequired=y&calendarloginrequired=y";
	newLocation = newLocation + "&closeWindow=true";
	// opener.document.location=newLocation;
	document.location.href=newLocation;

}

function goToDownloadEvent(calendarID, eventID) {
	
	newLocation="calendar_download.php?calendar="+ calendarID + "&event=" + eventID;
	newLocation = newLocation + "&closeWindow=true";
	// opener.document.location=newLocation;
	document.location.href=newLocation;

}

function updateMinute(hr, minute){

	if ( hr && minute ){
		if ( hr.value != "" ) {
			minute.value = "00";
		} else {
			minute.value = "";
		}
	}
	
}


function toggleStartEndTime(allDay, starthr, startmin, endhr, endmin){
	
	if (allDay.checked == true ) {
		starthr.value ="";
		startmin.value="";
		endhr.value="";
		endmin.value="";
		starthr.disabled = true;
		startmin.disabled = true;
		endhr.disabled = true;
		endmin.disabled = true;
	} else {
		starthr.disabled = false;
		startmin.disabled = false;
		endhr.disabled = false;
		endmin.disabled = false;	
	}
}

function checkValidDate(day, month, year ){

   // checks year
   if (year == 0) {
      return false;
   }
   
   // checks month
   if ((month < 1) || (month > 12)) {
      return false;
   }
   
   // checks day
   if (day < 1) {
     return false;
   }
   
   // leap year
   var leap =0;
   if (year % 4 == 0) {
      leap = 1;
   }
   
   if ((month == 2) && (leap == 1) && (day > 29)) {
      return false;
   }
   
   if ((month == 2) && (leap != 1) && (day > 28)) {
     return false;
   }
   
   if ((day > 31) && ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12))) {
      return false;
   }
   
   if ((day > 30) && ((month == 4) || (month == 6) || (month == 9) || (month == 11))) {
     return false;
   }
   
   return true;
   

}

function goToCalendarMainPage(calendarID) {

	newLocation = "calendar.php?calendar="+ calendarID;
	document.location.href=newLocation;	
}

function goToProcessFriendEmail(action, fromWindow, event, date, calendarID, closeWindow,
				email, note) {
	
	newLocation = "account.php?calendar="+ calendarID.value + "&action=" + action.value 
			+ "&fromWindow=" + fromWindow.value + "&event=" + event.value
			+ "&date=" + date.value + "&closeWindow=" + closeWindow.value 
			+ "&email=" + email.value + "&note=" + note.value;
	document.location.href=newLocation;	
}

function showExtEvents(form){

	if ( (form.countryTitle) && (form.countryTitle.value.toUpperCase() =="SINGAPORE") ) {
		newLocation="http://www.eventshub.com.sg";
		window.open(newLocation);
	}
}

// added by tmc 20060711 - end 
