function isInteger(testString) {
 return testString.match(/^[0-9]*$/);
}

function isDouble(testString) {
 return testString.match(/^[0-9]*$./);
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else {
		var expires = "";
	}
	document.cookie = name+"="+value+expires+"; path=/";
}

function getKeyCode(evt) {
	var e = evt? evt : window.event; 
	if(!e) return; 
	var key = 0; 
	if (e.keyCode) { key = e.keyCode; } // for moz/fb, if keyCode==0 use 'which' 
	else if (typeof(e.which)!= 'undefined') { key = e.which; } 
	return key;
}

function doPhoneKeyPressed(ev) {
/*
	var e = evt? evt : window.event; 
	if(!e) return; 
	var key = 0; 
	if (e.keyCode) { key = e.keyCode; } // for moz/fb, if keyCode==0 use 'which' 
	else if (typeof(e.which)!= 'undefined') { key = e.which; } 
*/	
	var key = getKeyCode(ev);
	//alert(key);
	if ((key >= 48 && 57 >= key) || (key == 45) || (key == 46) || (key == 8)) { // 46=del, 8=backspace
		return true;
	} else {
		return false;
	}
}

function doNumberKeyPressed(ev) {
	var key = getKeyCode(ev);
	if (key >= 48 && 57 >= key || (key == 46) || (key == 8)) { // 46=del, 8=backspace
		return true;
	} else {
		return false;
	}
}

function doNumberDotKeyPressed(ev) {
	var key = getKeyCode(ev);
	if (((key >= 48) && (57 >= key)) || (key == 46) || (key == 8) ) { // 46=del, 8=backspace
		return true;
	} else {
		return false;
	}
}
	

function openDiv(divId, openOnly) {
	var element = document.getElementById(divId);
	if (openOnly) {
		element.style.display = 'inline';
	} else {
		element.style.display = 'none';
	}
}

function toggleElement(elementId,shouldDisplay){
	if (shouldDisplay) 
    	 	document.getElementById(elementId).style.display = '';
    else
	        document.getElementById(elementId).style.display = 'none';
}

function popupToggle(div_id){
	var IE = document.all?true:false;
	
	if(document.getElementById(div_id).style.visibility!="visible")
	{
		document.getElementById(div_id).style.visibility="visible";
		document.getElementById(div_id).style.display="none";
	}

	
	if (document.getElementById(div_id).style.display!="none"){
		document.getElementById(div_id).style.display="none";
		try{
			document.getElementById(div_id+"_bg").style.display="none";
			if (IE)
			{
				var divPopup;
				divPopup=document.getElementById(div_id+"_bg");
//				document.body.removeChild(g_PopupIFrame);
				document.body.removeChild(document.getElementById(div_id+"_iframe"));
//				g_PopupIFrame=null;
			}
		}catch(e){};
	}
	else{
		window.scroll(0,0);
		popupInit(div_id);
		document.getElementById(div_id).style.display="block";
		
		
		try{
			document.getElementById(div_id+"_bg").style.display="block";
			
			if (IE)
			{
				var divPopup=document.getElementById(div_id+"_bg");
				
				var iFrame = document.createElement("IFRAME");
				iFrame.setAttribute("src", "");
				
				iFrame.style.position="absolute";
				iFrame.style.left =divPopup.offsetLeft + 'px';
				iFrame.style.top =divPopup.offsetTop + 'px';
				iFrame.style.width =divPopup.offsetWidth + 'px';
				iFrame.style.height =divPopup.offsetHeight + 'px';
				iFrame.style.zIndex=divPopup.style.zIndex-1;
				iFrame.style.filter="Alpha(opacity=0);";
				iFrame.id=div_id+"_iframe";
				document.body.appendChild(iFrame);
				
//				g_PopupIFrame=iFrame;
			
				document.getElementById(div_id+"_bg").style.display="block";
			}
		}catch(e){};
	}
	
		if (! IE ){
		
			ps=getPageSize();
			
			
			 
			if (ps[3]>document.getElementById(div_id).firstChild.clientHeight){
			
				document.getElementById(div_id).style.top=(ps[3]-document.getElementById(div_id).firstChild.clientHeight)/2+"px";
			}else{
				document.getElementById(div_id).style.top="10px";
			}
			
		}
	
}

/**
 * Add to the date number of days.
 * Return the date as String according to DATE_FORMAT variable
 * @param {String, Date} date
 * @param {Integer} daysToAdd
 * @return {String}
 */
function dateAddDays(date, daysToAdd){
	if (date == ''){
		var dateObj = new Date();
	}
	else{
		var dateObj = (typeof(date)=='string') ? formatDate(date, DATE_FORMAT) : date;
	}
	
	dateObj.setDate(dateObj.getDate()+daysToAdd);
	var date = dateObj.getDate();
	var month = dateObj.getMonth()+1;
	var year = dateObj.getFullYear();
	var dateStr = date < 10 ? ("0"+date) : (date);
	var monthStr = month < 10 ? ("0"+month) : (month);

	if(DATE_FORMAT=="dd/mm/yyyy"){
		var newDateStr = dateStr + "/" + monthStr + "/" + year;
	}
	else{
		alert("Date format not supported yet...");
	}
	return newDateStr;
}

/**
 * Return true if input with id='pageResult' have positive value;
 */
function checkResult(formId){
	if(formId == '' || formId == null){
		resultId = 'pageResult';
	}
	else{
		resultId = formId + ':pageResult';
	}
	return (1*document.getElementById(resultId).value > 0) ? true : false;
}

function onRoomsNoChange(roomsNo){
	document.getElementById('mainFrm:secondRoomLine').style.display = (roomsNo>1) ? '' : 'none';
}

function showWait(){
	document.getElementById('waitBgDiv').style.display = 'block';
	document.getElementById('waitContentWrapDiv').style.display = 'block';
}
function hideWait(){
	document.getElementById('waitBgDiv').style.display = 'none';
	document.getElementById('waitContentWrapDiv').style.display = 'none';
}
function toggleWait(){
	document.getElementById('waitBgDiv').style.display == 'none' ? showWait() : hideWait();
}
function showEditForm(){
	document.getElementById('mainFrm:editBgDiv').style.display = "block";
	document.getElementById('mainFrm:editWrapDiv').style.display = "block";
}
function hideEditForm(){
	document.getElementById('mainFrm:editBgDiv').style.display = "none";
	document.getElementById('mainFrm:editWrapDiv').style.display = "none";
}
function toggleHistory(row, count){
	var styleClass = document.getElementById('mainFrm:reservations:'+row+':h:0:hItem').style.display=='none'?'':'none';
	for(i=0; i<count; i++){
		document.getElementById('mainFrm:reservations:'+row+':h:'+i+':hItem').style.display = styleClass;
	}
}
function showPicture(url){
	document.getElementById('bigPicture').src = url;
	document.getElementById('pictureWrapDiv').style.display = 'block';	
}
function hidePicture(){
	document.getElementById('pictureWrapDiv').style.display = 'none';	
}
/*
 * 
function showPicture(url, formId){
	var pictureWrapDivEl = (formId=="") ? 'bigPicture' : formId+':bigPicture';
	var bigPictureEl = (formId=="") ? 'pictureWrapDiv' : formId+':pictureWrapDiv';
	
	document.getElementById(bigPictureEl).src = url;
	document.getElementById(pictureWrapDivEl).style.display = 'block';	
}
function hidePicture(formId){
	var elementId = (formId=="") ? 'pictureWrapDiv' : formId+':pictureWrapDiv';
	document.getElementById(elementId).style.display = 'none';	
}
 */
function toggle(name, show) {
	if (show) {
		document.getElementById(name).style.visibility = 'visible';
	} else {
		document.getElementById(name).style.visibility = 'hidden';
	}
}

function showAvailableRooms(){
	if (document.getElementById('mainFrm:availableRoomsContentDiv')) {
		document.getElementById('mainFrm:availableRoomsWrapDiv').style.display = "block";
		document.getElementById('mainFrm:availableRoomsBgDiv').style.display = "block";
	}
}
function hideAvailableRooms(){
	document.getElementById('mainFrm:availableRoomsWrapDiv').style.display = "none";
	document.getElementById('mainFrm:availableRoomsBgDiv').style.display = "none";
}
function flashFix(o){document.write(o)}

function hidePrice(){
	document.getElementById('mainFrm:lnkHidePrice').style.display = "none";
	document.getElementById('mainFrm:lnkShowPrice').style.display = "";
	togglePrice("none");
}
function showPrice(){
	document.getElementById('mainFrm:lnkHidePrice').style.display = "";
	document.getElementById('mainFrm:lnkShowPrice').style.display = "none";
	togglePrice("");
}
function togglePrice(display){
	document.getElementById('mainFrm:totalCostLbl').style.display = display;
	document.getElementById('mainFrm:totalCostVal').style.display = display;
	for(i=0; document.getElementById('mainFrm:mhItems:'+i+':mhItemPriceLbl'); i++){
		document.getElementById('mainFrm:mhItems:'+i+':mhItemPriceLbl').style.display = display;
		document.getElementById('mainFrm:mhItems:'+i+':mhItemPriceVal').style.display = display;
	}
}