

var shortMonths = new Array("JAN", "FEB", "MAR",
            "APR", "MAY", "JUN", "JUL", "AUG", "SEP",
            "OCT", "NOV", "DEC");

var dtCh= "/";
var dtCh2= "-";
var dtRsd=" ";
var minYear=1900;
var maxYear=2100;

var monthStr=",JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC,";


function getDayDate(data)

{
	var pos1=data.indexOf(dtCh);
	if (pos1==-1)
	{
		pos1=data.indexOf(dtRsd);
		//alert(strDay);
	}
	if (pos1==-1)
	{
		pos1=data.indexOf(dtCh2);
		//alert(strDay);
	}
	var strDay=data.substring(0,pos1);
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	return strDay;
}

function getMonthDate(data)
{
  	var pos1=data.indexOf(dtCh);
	var pos2=data.indexOf(dtCh,pos1+1);
	if (pos1==-1 && pos2==-1){
		var pos1=data.indexOf(dtCh2);
		var pos2=data.indexOf(dtCh2,pos1+1);
	}
	
	var strMonth=data.substring(pos1+1,pos2);
	var month=parseFloat(strMonth);
	if (pos1==-1 || pos2==-1)
	{
		var pos1_1=data.indexOf(dtRsd);
	  	var pos2_1=data.indexOf(dtRsd,pos1_1+1);
		var strMonth=data.substring(pos1_1+1,pos2_1);
		strMonth=strMonth.toUpperCase();
	  	if (monthStr.indexOf(","+strMonth+",")<0){
		  return 0;
		}
		for (i=0;i<12;i++){
		  if(shortMonths[i]==strMonth){
			  month=i+1;
			}
		}
	}
	var strMont=month.toString();
	if (strMont.charAt(0)=="0" && strMont.length>1) strMont=strMont.substring(1);
	return strMont;
}

function getYearDate(data)
{
  var pos1=data.indexOf(dtCh);
	if (pos1<0)
	{
	  pos1=data.indexOf(dtRsd);
	}
	if (pos1<0)
	{
	  pos1=data.indexOf(dtCh2);
	}
	var pos2=data.indexOf(dtCh,pos1+1);
	if (pos2<0)
	{
	  pos2=data.indexOf(dtRsd,pos1+1);
	}
	if (pos2<0)
	{
	  pos2=data.indexOf(dtCh2,pos1+1);
	}
	var strYear=data.substring(pos2+1);
	Yer=parseInt(strYear);
	if(Yer < 100){
		if (Yer>50)
		{
		  strYear="19"+strYear;
		}
		if (Yer<50)
		{
		  strYear="20"+strYear;
		}
	}
	year=parseInt(strYear);
	if (strYear.length!=4 || year<minYear || year>maxYear)
	{
	  return 0;
	}
	return strYear;
}

function isInteger(s)
{
	var i;
    for (i = 0; i < s.length; i++)
	 {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
	 {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year)
{
	// February has 29 days in any year evenly divisible by four,
  // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) 
{
	for (var i = 1; i <= n; i++) 
	{
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30};
		if (i==2) {this[i] = 29};
   } 
   return this
}

function CompareDate(LessDate, MoreDate)
{
	//var pos1=LessDate.indexOf(dtCh);
	//var pos2=LessDate.indexOf(dtCh,pos1+1);
	var strDay=getDayDate(LessDate);
	var strMonth=getMonthDate(LessDate);
	var strYear=getYearDate(LessDate);
	date1 = Date.parse(strMonth+"/"+strDay+"/"+strYear);

	pos1=MoreDate.indexOf(dtCh);
	pos2=MoreDate.indexOf(dtCh,pos1+1);
	strDay=getDayDate(MoreDate);
	strMonth=getMonthDate(MoreDate);
	strYear=getYearDate(MoreDate);
	date2 = Date.parse(strMonth+"/"+strDay+"/"+strYear);

	return (date1 <= date2);
}

function isDate(dtStr)
{
	var daysInMonth = DaysArray(12);
	var strDay=getDayDate(dtStr);
	var strMonth=getMonthDate(dtStr);
	var strYear=getYearDate(dtStr);
	day=parseFloat(strDay);
	year=parseFloat(strYear);
	month=parseFloat(strMonth);
	if (year!=0 && month!=0){
		if (strDay.length<1 || day<1 || day>31 || (strMonth=="2" && day>daysInFebruary(year)) || day > daysInMonth[month]){
		  return false;
		}
	return true;
  	}else{
	   return false;
	}
}

function ValidateForm(Input_with_Date)
{
	var dt=document.all[Input_with_Date];
	if (isDate(dt.value)==false)
	{
		dt.focus();
		return false;
	}
	return true;
}

function isEmail (s)
{      
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")){ 
		i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}
function DoCal(elTarget, elTarget2, IN_OUT, p1, p2) {
  /*
    var sRtn;
	var value=elTarget.value
	if (value=="" && elTarget2!=null){
		value=elTarget2.value;
	}
	 sRtn = showModalDialog("<%=path_prefix%>Include/Calendar.asp?Date="+value,"","center:yes;dialogWidth=200pt;dialogHeight=200pt;scroll:no;help:no;status:no;");
    if (sRtn!="")
      elTarget.value = sRtn;
*/
 	var value=elTarget.value;
//	if (value=="" && elTarget2!=null){
//		value=elTarget2.value;
//	}
    	var path; var path2;
    	if (IN_OUT==0){path=p1; path2=p2; value=elTarget.value;}
    	if (IN_OUT==1){path=p2; path2=p1; value=elTarget2.value;}

    	var width = screen.width/2 - 95;
    	var height = screen.height/2 - 95;
    
 	window.open("<%=path_prefix%>../common/Include/Calendar.asp?Date="+value+"&Path="+path+"&Path2="+path2+"&IN_OUT="+IN_OUT,"Calendar","width=250,height=200,toolbar=no,scrollbars=no,status=no,center=yes,resizable=yes,left="+width+",top="+height);

}


//----------------------------------
function DoCalShort(elTarget,year, path) {
    var sRtn;
	var Data = "";
	if(elTarget.value != "") 
		Data = elTarget.value+"-"+year;
	else{
		d = '<%=FormatDateTime(now(),2)%>';
		Data = d.substr(0,5)+"/"+year;
	}
/*
	sRtn = showModalDialog("<%=path_prefix%>Include/Calendar.asp?Date="+Data,"","center:yes;dialogWidth=190pt;dialogHeight=190pt;scroll:no;help:no;status:no;");
    if (sRtn!="")
      elTarget.value = sRtn.substr(0,6);
*/
       var width = screen.width/2 - 95;
       var height = screen.height/2 - 95;
       window.open("<%=path_prefix%>../common/Include/Calendar.asp?Date="+Data+"&Path="+path,"Calendar","width=250,height=200,toolbar=no,scrollbars=no,status=no,center=yes,resizable=yes,left="+width+",top="+height);
}

//---------------------------------------
// for default.asp and search2.asp
//---------------------------------------
function getMonthNumber(month){
 	if(month=="JAN") return 0; 
 	if(month=="FEB") return 1; 
 	if(month=="MAR") return 2; 
 	if(month=="APR") return 3; 
 	if(month=="MAY") return 4; 
 	if(month=="JUN") return 5; 
 	if(month=="JUL") return 6; 
 	if(month=="AUG") return 7; 
	if(month=="SEP") return 8; 
 	if(month=="OCT") return 9; 
 	if(month=="NOV") return 10; 
 	if(month=="DEC") return 11; 
}
function getMonthName(month_number){
 	if(month_number==0) return "JAN"; 
 	if(month_number==1) return "FEB"; 
 	if(month_number==2) return "MAR"; 
 	if(month_number==3) return "APR"; 
 	if(month_number==4) return "MAY"; 
 	if(month_number==5) return "JUN"; 
 	if(month_number==6) return "JUL"; 
 	if(month_number==7) return "AUG"; 
	if(month_number==8) return "SEP"; 
 	if(month_number==9) return "OCT"; 
 	if(month_number==10) return "NOV"; 
 	if(month_number==11) return "DEC"; 
}
function CalculateNights(night_obj, d_in_obj, d_out_obj){
	nights=night_obj.value;
	if (isNaN(nights)){
		alert("Nights must be number!");
		night_obj.focus();
		return;
	}//
	// regarding from DATE_IN
	date_arr=d_in_obj.value;
	if (date_arr!=""){
		year="20"+date_arr.substring(7);
		day = date_arr.substring(0,2);
		month = date_arr.substring(3,6);
		month2=getMonthNumber(month);
		day2=parseFloat(day)+parseFloat(nights);
		//
		var Date_OUT  = new Date( year, month2, day2 );
		d=new String(Date_OUT.getDate());
		m=getMonthName(Date_OUT.getMonth());
		y=new String(Date_OUT.getFullYear());
		d2= (d.length == 1) ? "0"+d : d;
		Date_OUT_STR=d2 +" "+m+" "+y.substring(2);
		if(nights!=""){
			d_out_obj.value=Date_OUT_STR;
		}
	}
}

var paramspassed = new Array();


function DoCalNights(elTarget, elTarget2, elNights, IN_OUT, p1, p2) {
    var value=elTarget.value;
//	if (value=="" && elTarget2!=null){
//		value=elTarget2.value;
//	}
    var path; var path2;
    if (IN_OUT==0){path=p1; path2=p2; value=elTarget.value;}
    if (IN_OUT==1){path=p2; path2=p1; value=elTarget2.value;}

    var width = screen.width/2 - 95;
    var height = screen.height/2 - 95;
    
 window.open("<%=path_prefix%>../common/Include/Calendar.asp?Date="+value+"&Path="+path+"&Path2="+path2+"&IN_OUT="+IN_OUT,"Calendar","width=250,height=200,toolbar=no,scrollbars=no,status=no,center=yes,resizable=yes,left="+width+",top="+height);
}

var check_alert = false;

function checkDate(elTarget, elTarget2, elNights, IN_OUT) {
	var one_day = 1000 * 60 * 60 * 24;
	var cal1 = document.getElementById(""+elTarget);
	var cal2 = document.getElementById(""+elTarget2);
	if (cal1.value == "") return;
	else if (cal2.value == "") cal2.value = cal1.value;
	var date1 = new Date();
	date1.setFullYear(cal1.value.split("/")[2], cal1.value.split("/")[1], cal1.value.split("/")[0])
	var date1_t = date1.getTime();
	var date2 = new Date();
	date2.setFullYear(cal2.value.split("/")[2], cal2.value.split("/")[1], cal2.value.split("/")[0])
	var date2_t = date2.getTime();
	if (date1_t >= date2_t) {
		date2 = date1;
		date2.setDate(date2.getDate() + 1);
		var _m = ""+(date2.getMonth());
		if (_m.length == 1) _m = "0" + _m;
		var _d = ""+date2.getDate();
		if (_d.length == 1) _d = "0" + _d;
		cal2.value = "" + _d + "/" + _m + "/" + date2.getFullYear();
	}
}
function setCalFromTxt() {
	  var txt = document.getElementById("<%=txt_num_nights.ClientID%>");
	  var _notti = parseInt(txt.value);
	  var cal1 = document.getElementById("<%=txt_date_from.ClientID%>");
	  var cal2 = document.getElementById("<%=txt_date_to.ClientID%>");
	  if (cal1.value == "" || cal2.value == "") return;
	  var date1 = new Date(); 
	  date1.setFullYear(cal1.value.split("-")[0], parseInt(cal1.value.split("-")[1]) - 1, cal1.value.split("-")[2])
	  var date2 = date1;
	  if ("" + _notti != "NaN") {
		  date2.setDate(date1.getDate() + _notti);
	  }
	  else
		  date2.setDate(date1.getDate() + 1);
	  var _m = "" + (date2.getMonth() + 1);
	  if (_m.length == 1) _m = "0" + _m;
	  var _d = "" + date2.getDate();
	  if (_d.length == 1) _d = "0" + _d;
	  cal2.value = "" + date2.getFullYear() + "-" + _m + "-" + _d;
}
function setTxtFromCal() {
	  var one_day = 1000 * 60 * 60 * 24;
	  var txt = document.getElementById("<%=txt_num_nights.ClientID%>");
	  var cal1 = document.getElementById("<%=txt_date_from.ClientID%>");
	  var cal2 = document.getElementById("<%=txt_date_to.ClientID%>");
	  if (cal1.value == "" || cal2.value == "") return;
	  var date1 = new Date();
	  date1.setFullYear(cal1.value.split("-")[0], cal1.value.split("-")[1], cal1.value.split("-")[2])
	  var date1_t = date1.getTime();
	  var date2 = new Date();
	  date2.setFullYear(cal2.value.split("-")[0], cal2.value.split("-")[1], cal2.value.split("-")[2])
	  var date2_t = date2.getTime();
	  if (date1_t >= date2_t) {
		  date2 = date1;
		  date2.setDate(date2.getDate() + 1);
		  var _m = ""+(date2.getMonth()+1);
		  if (_m.length == 1) _m = "0" + _m;
		  var _d = ""+date2.getDate();
		  if (_d.length == 1) _d = "0" + _d;
		  cal2.value = "" + date2.getFullYear() + "-" + _m + "-" + _d;
		  txt.value = "1";  
	  }
	  else {
		  txt.value = Math.ceil((date2_t - date1_t) / (one_day));
	  }
}

function TogDisp(obj,flg){obj.style.display=(flg)?"block":"none";} 

function SRm()
{
	var cr=document.getElementById('crom').value;
	for (var i=2;i<=7;i++)
	{
	TogDisp(document.getElementById('ROn'+i+'1'),cr >=i);
	TogDisp(document.getElementById('ROn'+i+'2'),cr >=i);
	TogDisp(document.getElementById('ROn'+i+'3'),cr >=i);
	}
	//TogDisp(document.getElementById('ROn1'),cr !=1);
}
function getObj(objID)
	{
	if (document.getElementById) {return document.getElementById(objID);}
	else if (document.all) {return document.all[objID];}
	else if (document.layers) {return document.layers[objID];}
	}
function ShowAges(r)
{
	var cRms=CRms(r);
	var dF=getObj('ageFrame');
	if(0==cRms)dF.style.display="none";
	else
	{
	ShowSels(r);
	if(dF.style.display=="none")
	{
	dF.style.visibility="hidden";
	dF.style.display="block";
	}
	dF.style.visibility="visible";
	
	}
}
function ShowSels(r)
{
	var da,iRm,iKd,ck;
	for(iRm=1;iRm<=7;iRm++)
	{
	ck=eval('document.getElementById("cam"+iRm+"bam")').value;
	for(iKd=1;iKd<=4;iKd++)
	{
	getObj('a'+iRm+iKd).style.display=(iKd<=ck)?"block":"none";
	}
	getObj('rk'+iRm).style.display=(ck>0&&iRm<=r)?"block":"none";
	
	}
	if(getObj('RmDrp') && getObj('RmDrp').style.display == "none")getObj('rk1').style.display="none";
}
function CRms(r)
{
	var i,n=0;
	for(i=1;i<=r;i++){n+=parseInt(eval('document.getElementById("cam"+i+"bam")').value);}
	return n;
}
function SKAR(r){SKARI(r);}
function SKARI(r)
{
	var iRm;
	for (iRm=1;iRm<=7;iRm++)
	{
	getObj('ageSel'+iRm).style.display=(iRm<=r)?"block":"none";
	
	}
	ShowAges(r);
}
function ShowIS(d,s){d.infant.style.display=(s==1)?"block":"none";}

function caricasel(sel){
var selectobj=document.getElementById('statcome2');
	for (m=0;m<selectobj.options.length;m++)
	selectobj.options[m]=null;
	document.getElementById('divstatcome2').style.display='none';
	
	if (sel.value=='internet'){
	selectobj.options[0]=new Option('Google','google');
	selectobj.options[1]=new Option('Yahoo','yahoo');
	selectobj.options[2]=new Option('Msn','msn');
	selectobj.options[3]=new Option('Virgilio','virgilio');
	selectobj.options[4]=new Option('Libero','libero');
	selectobj.options[5]=new Option('Altro','altro');
	document.getElementById('divstatcome2').style.display='inline-block';
	}
	if (sel.value=='stampa'){
	selectobj.options[0]=new Option('Tv sorrisi e canzoni','tv sorrisi e canzoni');
	selectobj.options[1]=new Option('Di pił','di piu');
	selectobj.options[2]=new Option('Chi','chi');
	selectobj.options[3]=new Option('Repubblica','repubblica');
	selectobj.options[4]=new Option('Corriere delle sera','corriere delle sera');
	selectobj.options[5]=new Option('Altro','altro');
	document.getElementById('divstatcome2').style.display='inline-block';
	}
	if (sel.value=='tv'){
	selectobj.options[0]=new Option('Rai','rai');
	selectobj.options[1]=new Option('Mediaset','mediaset');
	selectobj.options[2]=new Option('Altro','altro');
	document.getElementById('divstatcome2').style.display='inline-block';
	}
}

function validateEmail(addr,man,db) {
if (addr == '' && man) {
   if (db) alert('email address is mandatory');
   return false;
}
if (addr == '') return true;
var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
for (i=0; i<invalidChars.length; i++) {
   if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
      if (db) alert('email address contains invalid characters');
      return false;
   }
}
for (i=0; i<addr.length; i++) {
   if (addr.charCodeAt(i)>127) {
      if (db) alert("email address contains non ascii characters.");
      return false;
   }
}

var atPos = addr.indexOf('@',0);
if (atPos == -1) {
   if (db) alert('email address must contain an @');
   return false;
}
if (atPos == 0) {
   if (db) alert('email address must not start with @');
   return false;
}
if (addr.indexOf('@', atPos + 1) > - 1) {
   if (db) alert('email address must contain only one @');
   return false;
}
if (addr.indexOf('.', atPos) == -1) {
   if (db) alert('email address must contain a period in the domain name');
   return false;
}
if (addr.indexOf('@.',0) != -1) {
   if (db) alert('period must not immediately follow @ in email address');
   return false;
}
if (addr.indexOf('.@',0) != -1){
   if (db) alert('period must not immediately precede @ in email address');
   return false;
}
if (addr.indexOf('..',0) != -1) {
   if (db) alert('two periods must not be adjacent in email address');
   return false;
}
var suffix = addr.substring(addr.lastIndexOf('.')+1);
if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
   if (db) alert('invalid primary domain in email address');
   return false;
}
return true;
}

