// JavaScript Document
function previewImage(url, width, height, windowName, scrollbar){
	var x = (screen.width) ? (screen.width-width) / 2 : 100;
	var y = (screen.height) ? (screen.height-height) / 2 : 100;

	var features = "width=" + width + "px, height=" + height + "px, top=" + y + "px, left=" + x + "px";
		features += (scrollbar) ? ", scrollbars=yes" : "";
		features += ", resizable=yes";
	if (!windowName){
		windowName = "Preview Image";
	}
	var popWindow = window.open('', windowName, features);
	//get the extension of the file to see if it has one of the image extensions
	var fileExtension = url.substring(url.lastIndexOf(".")+1);
		fileExtension = fileExtension.toLowerCase();
		if (fileExtension == "jpg" || fileExtension == "jpeg" || fileExtension == "gif" || fileExtension == "png")
			popWindow.document.write("<img src='" + url + "'>");
		else
		//if not extension fron list above write URL to file 
			popWindow.document.write("<a href='" + url + "'>" + url + "</a>");		

	if (document.layers){
		window.moveTo(x, y);
	}
	popWindow.focus();
}

function popWin(url, width, height, windowName, scrollbar, content){
	var x = (screen.width) ? (screen.width-width) / 2 : 100;
	var y = (screen.height) ? (screen.height-height) / 2 : 100;

	var features = "width=" + width + "px, height=" + height + "px, top=" + y + "px, left=" + x + "px";
		features += (scrollbar) ? ", scrollbars=yes" : "";
		features += ", resizable=no";
	if (!windowName){
		windowName = "untitled";
	}
	var popWindow = window.open(url, windowName, features);

	if (popWin.arguments.length == 6 && content != ""){
		popWindow.document.write(content);
	}
	if (document.layers){
		window.moveTo(x, y);
	}
	popWindow.focus();
}

function resizePopWin(nest_object){
	var body_margin = 32;
	var scroll_bar = 20;
	var title_bar = 25;
	var form_space = 12;
	var scale = 2;	//	scale = height/width;
	var additional_range = 100;
	
	var window_width = nest_object.clientWidth + body_margin + scroll_bar;
	var content_height = nest_object.clientHeight + body_margin + form_space + title_bar;
	var window_height = Math.min(Math.round(window_width * scale), Math.min(content_height, screen.height));

	if (window_height == Math.round(window_width * scale) && Math.abs(window_height - content_height) < additional_range && content_height < screen.height - additional_range){
		window_height = content_height;
	}
	if (window_height < content_height){
		document.body.scroll = "auto";
	}else{
		document.body.scroll = "no";
	}

	window.resizeTo(window_width, window_height+0);
	
	var x = (screen.width) ? (screen.width - window_width) / 2 : 100;
	var y = (screen.height) ? (screen.height - window_height) / 2 : 100;
	
	window.moveTo(x, y);
}
function resizeWindow() {
	window.resizeTo(500, 450);
	var x = (screen.width) ? (screen.width - 500) / 2 : 100;
	var y = (screen.height) ? (screen.height - 450) / 2 : 100;
	window.moveTo(x, y);
}
//
function view_service_history(sli,service_id)
{
	url="view_service_logs.php?sli="+sli
	popWin(url,400,200,"service_log",true);
}

//---------------------------------------------------------------------------------
function open_calendar(frm_name,frm_field,func){
	if(!func)
		func=""

	var url="style_js/calendar/calendar.htm#"+frm_name+"="+frm_field +"="+func
	popWin(url,230,220,"calendar",0,0)
		//popWin(url,width,height,windowName,scrollbar,content)

}
//---------------------------------------------------------------------------------
function edit_hotel(service_id,segment_num)
{
	segment_num=1
	url="select_hotel.php?service_id="+service_id+"&segment_num=" + segment_num
	popWin(url,400,200,"service_log",true);

}
/**
//Lan.tt
 * Type = 0: dd mm yyyy
 *		  1: mm dd yyyy
 *		  2: dd mmmm yyyy	
 */
function isDate(date,type){
	if (!(type==0||type==1||type==2)) {alert("Please specify date type in check form function!"); return false;}
	var day, month, year;
	var dateText=new Array("null","january","february","march","april","may","june","july","august","september","october","november","december");
	var thisdate=trim(date);

	//validate basic format
	var dateType=new Array();
	dateType[0]=/^\d{1,2}(\-|\/|\.|\s)\d{1,2}(\-|\/|\.|\s)\d{1,4}$/;	//date format dd mm yyyy
	dateType[1]=/^\d{1,2}(\-|\/|\.|\s)\d{1,2}(\-|\/|\.|\s)\d{1,4}$/;	//date format mm dd yyyy
	dateType[2]=/^\d{1,2}(\-|\/|\.|\s)\w{3,9}(\-|\/|\.|\s)\d{1,4}$/;	//date format dd mmmm yyyy
	if (thisdate.search(dateType[type])==-1) return false;
	
	var seperator=(thisdate.indexOf("-")!=-1)?"-":(thisdate.indexOf("/")!=-1)?"/":(thisdate.indexOf(".")!=-1)?".":(thisdate.indexOf(" ")!=-1)?" ":"";
	if (seperator=="") return false;	//no seperator

	var dateParam=thisdate.split(seperator);
	if (dateParam.length!=3) return false;	//use difference seperator
	
	//day month year from date string
	day=dateParam[0]; 
	year=dateParam[2];

	switch (type){
		case 0:
			month=dateParam[1];
		break;
		case 1:
			day=dateParam[1];
			month=dateParam[0];
		break;
		case 2:
			month=inArray(dateParam[1].toLowerCase(),dateText);
		break;
	}
//	alert('2323234324'+ day + "  " + month + "   " +year);	
	if (!month) return false;
	if (!senseDate(day,month,year)) return false;	
	return true;
}

//Lan.tt
function inArray(itemToCheck,targetArray){
	var i=-1; var result=false;
	if (!isArray(targetArray)) return false;
	while ((i<targetArray.length-1)&&(!result)){
		i++;
		result=(targetArray[i].indexOf(itemToCheck)!=-1)?true:false;
	}
	if (result) return i;
	return false;
}

//Lan.tt
function isArray(obj){
	if (obj.constructor.toString().indexOf("Array")==-1)
		return false;
	return true;
}
//Lan.tt
function senseDate(day,month,year){ 
//alert(day + "  " + month + "   " +year);
	if ((day<1)||(day>31)) return false;
	if ((month<1)||(month>12)) return false;
	if (year<1900||year>2020) return false;
	if ((month==2)&&(day>29)) return false;
	if (((month==4)||(month==6)||(month==9)||(month==11))&&(day>30)) return false;
	if ((month==2)&&(day==29)){
		var div4=year%4;
        var div100=year%100;
        var div400=year%400;
		if (div4!=0) return false;
		if ((div100==0)&&(div400!=0)) return false;
	}
	return true;
}

function inputPhone(number)
{
	var pattern = "0123456789-+ ()[].";
	
	if (len != 0)
	{
		var index = 0;
		var len = number.value.length;
		
		while ((index < len) && (len != 0))
			if (pattern.indexOf(number.value.charAt(index)) == -1)
			{
				if (index == len-1)
					number.value = number.value.substring(0, len-1);
				else if (index == 0)
					 	number.value = number.value.substring(1, len);
					 else number.value = number.value.substring(0, index)+number.value.substring(index+1, len);
				index = 0;
				len = number.value.length;
			}
			else index++;
	}
}

//Lan.tt
function compareDate(date1,date2,type){
	var dateInput=(type==1)?1:0;
	var dateType=new Array();
	dateType[0]=/^\d{1,2}(\-|\/|\.|\s)\d{1,2}(\-|\/|\.|\s)\d+$/;	//date format dd mm yyyy
	dateType[1]=/^\d{1,2}(\-|\/|\.|\s)\d{1,2}(\-|\/|\.|\s)\d+$/;	//date format mm dd yyyy
	
	if (date1.search(dateType[dateInput])==-1||date2.search(dateType[dateInput])==-1) return 0;
	
	var seperator1=(date1.indexOf("-")!=-1)?"-":(date1.indexOf("/")!=-1)?"/":(date1.indexOf(".")!=-1)?".":(date1.indexOf(" ")!=-1)?" ":"";
	var seperator2=(date2.indexOf("-")!=-1)?"-":(date2.indexOf("/")!=-1)?"/":(date2.indexOf(".")!=-1)?".":(date2.indexOf(" ")!=-1)?" ":"";
	
	if (seperator1==""||seperator2=="") return 0;
	
	var dateArr1=date1.split(seperator1);
	var dateArr2=date2.split(seperator2);
	
	if (dateArr1.length!=3||dateArr2.length!=3) return 0;
	
	if (dateInput==1){
		var year1 = dateArr1[2];
		var year2 = dateArr2[2];
		var month1 = dateArr1[0];
		var month2 = dateArr2[0];
		var day1 = dateArr1[1];
		var day2 = dateArr2[1];
	}else{
		var year1 = dateArr1[2];
		var year2 = dateArr2[2];
		var month1 = dateArr1[1];
		var month2 = dateArr2[1];
		var day1 = dateArr1[0];
		var day2 = dateArr2[0];
	}

	if (compareNumber(year1, year2) != 3) return compareNumber(year1, year2);
	if (compareNumber(month1, month2) != 3) return compareNumber(month1, month2);
	if (compareNumber(day1, day2) != 3) return compareNumber(day1, day2);
	return 3;
}

function compareNumber(num1, num2){
	if (num1>num2){
		return 1;
	}else if (num1<num2){
		return 2;
	}else{
		return 3;
	}
}

//Lan.tt
function checkImage(image)
{
	var reg = /\b(.gif|.jpg|.ico|.bmp|.jpeg)$/i;
	return reg.test(image);
}
//Lan.tt
function trim(str) {
	return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
//Lan.tt
function isBlank(str) {
	if( str == "" ) 
		return true ;
	return false ;
}
//Lan.tt
function isEmail(s){
	if (s.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}$/) != -1)
		return true ;
	return false ;
}
//Lan.tt
function checkForm(frm, arrControl) {
	var nNumControl = arrControl.length ;
	var i = 0;
	for(i = 0; i < nNumControl; i++) 
	{
		bValid = trim(arrControl[i][0] ) ;
		if(eval( bValid )){ //== 
			alert( arrControl[i][1] ) ;
			if(arrControl[i][2] != "")
			{
				eval( "frm."  + arrControl[i][2] ).focus() ;
			}
			return false ; //== Error
		}
	}
	return true ; //== OK
}

function createEditor(id,value,height){
	if (document.all){
		var idGenerator = new IDGenerator(id);
		if (isNaN(height)) height=200;
		var editor = new Editor(idGenerator,value,height);
		editor.Instantiate();
	}else{
		document.write("Sorry! your browser does not support this action. Please use Internet Explorer.")
	}
	return true;
}

function GetCountry_City(action, adhoc)
{
	if (action == "new")
	{		
		document.form1.country.value = opener.document.form1.country.options[opener.document.form1.country.selectedIndex].value;
		document.form1.city.value = opener.document.form1.city.options[opener.document.form1.city.selectedIndex].value;
		if (adhoc == true)
		{
			document.form1.country_id.value = opener.document.form1.country.options[opener.document.form1.country.selectedIndex].value;
			document.form1.city_id.value = opener.document.form1.city.options[opener.document.form1.city.selectedIndex].value;
		}
	}	
}

function isPositive(number)
{
	if (isNaN(number) || number<=0) return false;
	return true;
}

function isPositive1(number)
{
	if (isNaN(number) || number<0) return false;
	return true;
}

//check time hh:mm
function checkTime(value)
{
		var re = /\b(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9])/
		if (re.test(value)) return true
		else return false
}

function Cancel_Click(refresh)
{
	if (refresh)
	{
		opener.window.location = opener.window.location;
	}
	window.close();
}

 function Pop_Go(){
        window.print();
        return
 }

function openProfile(value)
{
	popWin('profile.php?id='+value, 720, 550, 'Edit_Profile',true);
}
function formatCurrency(num)
 {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	//return (((sign)?'':'-') + '$' + num + '.' + cents);
	return (((sign)?'':'-') +  num + '.' + cents);
}

function isPhone(s)
{
	if (s.search(/^((\+?\d*)?\([0-9]{1,3}\))?\d*$/) != -1) return true;
	return false;
}

function changeToFully(obj)
{
	if (document.form1.is_fully.value=="1")
		obj.disabled = true;
}

function overrideToFully(obj, obj_override)
{
	if (document.form1.is_fully.value=="1")
	{
		if (trim(obj_override.value) != "")
			obj.disabled = true;
		else if (!existOverride())
			obj.disabled = false;
	}
}

function existOverride()
{
	frm = document.form1;
	var name = "";

	for (var i=0; i<frm.length; i++)
	{	
		name = frm.elements[i].name;
		if (typeof(name) != "undefined" && (name.indexOf("override_price") != -1 
				|| name.indexOf("override_cost") != -1 
				|| name.indexOf("eb_override_price") != -1 
				|| name.indexOf("eb_override_cost") != -1
				|| name.indexOf("override_child_price") != -1
				|| name.indexOf("override_child_cost") != -1
			) && trim(frm.elements[i].value) != "")
		{			
			return true;
		}
	}
	return false;
}

function popInsertNoteWindow()
{
	popWin('popup_insert_note.php',500,400,'insert_note',true);
}

function convertDate123(str)
{

	idx1=str.indexOf("/",0)
	if(idx1==-1)
		return false

	idx2=str.indexOf("/",idx1+1)
	if(idx2==-1)
		return false
	
	day=str.substr(0,idx1)
	month=str.substr(idx1+1,idx2-idx1-1)
	year=str.substr(idx2+1)
	mydate=day+"/"+ month +"/"+year
	if(!Date.parse(mydate) || Date.parse(mydate)<0)
		return false
	
	return month+"/"+ day +"/"+year
}

function dateAdd123(start_date,n)
{
	var s=new Date(start_date);
	s=Date.parse(s)+60000*24*60*n
	var dt=new Date(s)
	day=dt.getDate()
	month=dt.getMonth()+1
	year=dt.getFullYear()
	if(day<10)
		day="0"+day
	if(month<10)
		month="0"+month
	return day+"/"+month+"/"+year
}

function isInt(x) { 
   var y=parseInt(x); 
   if (isNaN(y)) return false; 
   return x==y && x.toString()==y.toString(); 
}

function isObject(a) 
{
	return (typeof a == 'object' && !!a);
}
