function ajax4(module,post,result,idstatus,conwait) // ham ajax cai tien manh - danh rieng cho module gallery post, result id, id status, content waiting, content ok
{// ham ajax nay ket hop voi function sethtml de chay duoc javascript tra ve = this is a modern method
if (idstatus!=""){
	var oldcon=document.getElementById(idstatus).innerHTML;
}
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
catch (e)
  {
  try
	{
	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
  catch (e)
	{
	alert("Your browser does not support AJAX!");
	return false;
	}
  }
}
xmlHttp.onreadystatechange=function()
  {
  if(xmlHttp.readyState==4)
	{
		if (result!=""){
			sethtml(result,xmlHttp.responseText);
		}
		if ((idstatus!="")&&(idstatus!=result)){
			document.getElementById(idstatus).innerHTML=oldcon;
		}
	}else{
		if (conwait==""){conwait="<img src='"+ltpl+"images/waiting.gif' />";}
		if (idstatus!=""){
			document.getElementById(idstatus).innerHTML=conwait;
		}
	}
  }
xmlHttp.open("POST",module,true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send("language="+langname+post);
}

function ajax3(post,result,idstatus,conwait) // ham ajax cai tien manh - danh rieng cho module gallery post, result id, id status, content waiting, content ok
{// ham ajax nay ket hop voi function sethtml de chay duoc javascript tra ve = this is a modern method
if (idstatus!=""){
	var oldcon=document.getElementById(idstatus).innerHTML;
}
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
catch (e)
  {
  try
	{
	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
  catch (e)
	{
	alert("Your browser does not support AJAX!");
	return false;
	}
  }
}
xmlHttp.onreadystatechange=function()
  {
  if(xmlHttp.readyState==4)
	{
		if (result!=""){
			sethtml(result,xmlHttp.responseText);
		}
		if ((idstatus!="")&&(idstatus!=result)){
			document.getElementById(idstatus).innerHTML=oldcon;
		}
	}else{
		if (conwait==""){conwait="<img src='"+ltpl+"images/waiting.gif' />";}
		if (idstatus!=""){
			document.getElementById(idstatus).innerHTML=conwait;
		}
	}
  }
xmlHttp.open("POST",scriptname,true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send("language="+langname+post);
}
// ham dung de parse ajax result, co the prase duoc code javascript va dua content vao the div dinh san
function sethtml(div,content) {
         var search = content;
         var script;
         
         var is_singleq = 0; var singleq = "'";
         var is_doubleq = 0; var doubleq = '"';
         var is_escaped = 0; var escap = "\\";
         var layer = 0;
		 
         document.getElementById(div).innerHTML=content;
		 
         while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) {
            search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
            if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
            block = search.substr(0, search.indexOf(RegExp.$1));
            search = search.substring(block.length + RegExp.$1.length);
            
            while(func = block.match(/(function(.+?)\((.*?)\)\s*\{)/)) {
               eval(block.substr(0,block.indexOf(RegExp.$1)));
               // for evaluating non functions
               
               block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length);
               name = RegExp.$2;
               param = RegExp.$3;
               
               is_singleq = 0;
               is_doubleq = 0;
               is_escaped = 0;
               layer = 0;
               
               
               for(i=0;i<block.length;i++) {
                  c = block.substr(i,1);
                  
                  if ((is_singleq || is_doubleq) && is_escaped) {
                     is_escaped = 0;
                  } else if (!is_doubleq && (c==singleq)) {
                     is_singleq = !is_singleq;
                  } else if (!is_singleq && (c==doubleq)) {
                     is_doubleq = !is_doubleq;
                  } else if ((is_singleq || is_doubleq) && (c==escap)) {
                     is_escaped = 1;
                  } else if ( c=="{") {
                     layer++;
                  } else if ( c=="}") {
                     if ( layer==0 ) {
                        break;
                     }
                     layer--;
                  }
               }
               
               code = block.substr(0,i-1);
               block = block.substr(i +1);
               
               code = code.replace(/\n/g, '\\n');
               code = code.replace(/\r/g, '\\r');
               code = code.replace(/'/g,"\\'");
               
               eval(name + " = new Function('"+param+"','"+code+"');");
            }
            eval(block); // for evaluating non functions
         }
      }
// end ham sethtml
function value(field){
	return document.getElementById(field).value;
}
function showhide(field){
	var i=document.getElementById(field);
	if (i.style.display=="none"){
		i.style.display="";
	}else{
		i.style.display="none";
	}
}
function show(field){
	var i=document.getElementById(field);
	i.style.display="";
}
function hide(field){
	var i=document.getElementById(field);
	i.style.display="none";
}
function isMail(mail)
{
	var x = mail;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) return true;
	else return false;
}
function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	  { 
	  Char = sText.charAt(i); 
	  if (ValidChars.indexOf(Char) == -1) 
		 {
		 IsNumber = false;
		 }
	  }
	return IsNumber;
}
function IsPhone(sText)
{
	var ValidChars = "0123456789.+ ";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	  { 
	  Char = sText.charAt(i); 
	  if (ValidChars.indexOf(Char) == -1) 
		 {
		 IsNumber = false;
		 }
	  }
	return IsNumber;
}
function setrate(point,method){
	if (method=="set"){
		cur_point=point;
	}
	if (point==39){
		point=cur_point;
	}
	if (method=="click" && !checked){
		cur_point=point;
		ajax3("&m=vote&entry="+entryid+"&point="+point,"","","");
	}
	if (!checked){
		for (i=1;i<=5;i++){
			if (i<=point){
				document.getElementById("star"+i).style.background="url("+ltpl+"images/star_yellow.png) top left no-repeat";
			}else{
				document.getElementById("star"+i).style.background="url("+ltpl+"images/star_grey.png) top left no-repeat";
			}
		}
	}
	if (method=="click" && !checked){
		alert("Cam on ban da binh chon.");
		checked=true;
	}
}
function paginate_news(pages,cur_page,selectid,catid){
	strHTML="";
	for (i=1;i<=pages;i++){
		if (i==cur_page){
			strHTML+="<option selected value='"+i+"'>"+i+"</option>";
		}else{
			strHTML+="<option value='"+i+"'>"+i+"</option>";
		}
	}
	strHTML="<select onchange=\"window.location.href='?language=vn&cat="+catid+"&page='+this.value;\" style='font-size:9px;'>"+strHTML+"</select>";
	if (cur_page>1){
		strHTML="<span class='paginate' onclick=\"window.location.href='?language=vn&cat="+catid+"&page="+(cur_page-1)+"';\">L&ugrave;i</span>"+strHTML;
		
	}
	if (cur_page<pages){
		strHTML=strHTML+"<span class='paginate' onclick=\"window.location.href='?language=vn&cat="+catid+"&page="+(cur_page+1)+"';\">Ti&#7871;n</span>";
	}
	document.getElementById(selectid).innerHTML=strHTML;
}
function filtere(slen){
	var rExp = /"|'|&|\\|}|{/gi;
	searchtermsp=value("keyword");
	if (searchtermsp!=""){
		if ((searchtermsp.length<slen) || (searchtermsp.search(rExp)!=-1)){
			return false;
		}else{
			return true;
		}
	}else{
		return false;
	}
}
function remove_bug(str){
	str=str.replace("'","&prime;");
	return str;
}
function addslashes(str) {
	str=str.replace(/\'/g,'\\\'');
	str=str.replace(/\"/g,'\\"');
	str=str.replace(/\\/g,'\\\\');
	str=str.replace(/\0/g,'\\0');
	return str;
}
function stripslashes(str) {
	str=str.replace(/\\'/g,'\'');
	str=str.replace(/\\"/g,'"');
	str=str.replace(/\\\\/g,'\\');
	str=str.replace(/\\0/g,'\0');
	return str;
}
function booktour(){
	var send=true;
	if (!IsPhone(value("c3")) || value("c3")==""){
		show("c3e");
		send=false;
	}else{
		hide("c3e");
	}
	if (!isMail(value("c4")) || value("c4")==""){
		show("c4e");
		send=false;
	}else{
		hide("c4e");
	}
	mes=value("c0")+"&nbsp;";
	mes+=value("c1")+"<br />";
	mes+="Adress:&nbsp;"+value("c2")+"<br />";
	mes+="Telephone:&nbsp;"+value("c3")+"<br />";
	mes+="Email:&nbsp;"+value("c4")+"<br />";
	mes+="Language:&nbsp;"+value("c5")+"<br />";
	mes+="Number of Passenger:&nbsp;"+value("c6")+"<br />";
	mes+="Departure Date:&nbsp;"+value("c7")+"<br />";
	mes+="Special Requests:&nbsp;"+value("c8")+"<br />";
	message=encodeURIComponent(mes);
	message=addslashes(message);
	//alert(message);
	if (send){
		//alert(mes);
		ajax3("&m=booked&tour="+value("tour")+"&email="+value("c4")+"&message="+message,"book-form","book-form","<p align='center'><img src='"+ltpl+"images/waiting.gif' /></p>");
	}
}
function book_hotel(){
	var send=true;
	if (!isMail(value("c2")) || value("c2")==""){
		show("c2e");
		send=false;
	}else{
		hide("c2e");
	}
	if (!IsPhone(value("c8")) || value("c8")==""){
		show("c8e");
		send=false;
	}else{
		hide("c8e");
	}
	mes="Fullname:&nbsp;"+value("c0")+"<br />";
	mes+="Adress:&nbsp;"+value("c1")+"<br />";
	mes+="Telephone:&nbsp;"+value("c8")+"<br />";
	mes+="Email:&nbsp;"+value("c2")+"<br />";
	mes+="Booking date:&nbsp;"+value("c3")+"<br />";
	mes+="Number of room:&nbsp;"+value("c4")+"<br />";
	mes+="Number of guest:&nbsp;"+value("c5")+"<br />";
	mes+="Room type:&nbsp;"+value("c6")+"<br />";
	mes+="Special request:&nbsp;"+value("c7")+"<br />";
	if (send){
		//alert(encodeURIComponent(mes));
		//title=encodeURIComponent(value("c0"));
		//title=addslashes(title);
		title="Book Restaurant";
		message=encodeURIComponent(mes);
		message=addslashes(message);
		//alert("&m=contact&title="+title+"&email="+value("c2")+"&message="+escape(mes));
		ajax3("&m=contact&title="+title+"&email="+value("c2")+"&message="+message,"contact-form","contact-form","<p align='center'><img src='"+ltpl+"images/waiting.gif' /></p>");
	}
}
function book_restaurant(){
	var send=true;
	if (!isMail(value("c2")) || value("c2")==""){
		show("c2e");
		send=false;
	}else{
		hide("c2e");
	}
	if (!IsPhone(value("c8")) || value("c8")==""){
		show("c8e");
		send=false;
	}else{
		hide("c8e");
	}
	mes="Fullname:&nbsp;"+value("c0")+"<br />";
	mes+="Adress:&nbsp;"+value("c1")+"<br />";
	mes+="Telephone:&nbsp;"+value("c8")+"<br />";
	mes+="Email:&nbsp;"+value("c2")+"<br />";
	mes+="Booking date:&nbsp;"+value("c3")+"<br />";
	mes+="Number of guest:&nbsp;"+value("c5")+"<br />";
	mes+="Special request:&nbsp;"+value("c7")+"<br />";
	if (send){
		//alert(encodeURIComponent(mes));
		//title=encodeURIComponent(value("c0"));
		//title=addslashes(title);
		title="Book Restaurant";
		message=encodeURIComponent(mes);
		message=addslashes(message);
		//alert("&m=contact&title="+title+"&email="+value("c2")+"&message="+escape(mes));
		ajax3("&m=contact&title="+title+"&email="+value("c2")+"&message="+message,"contact-form","contact-form","<p align='center'><img src='"+ltpl+"images/waiting.gif' /></p>");
	}
}
function contact(){
	var send=true;
	if (!isMail(value("c2")) || value("c2")==""){
		show("c2e");
		send=false;
	}else{
		hide("c2e");
	}
	mes="Fullname:&nbsp;"+value("c0")+"<br />";
	mes+="Adress:&nbsp;"+value("c1")+"<br />";
	mes+="Email:&nbsp;"+value("c2")+"<br />";
	mes+="Title:&nbsp;"+value("c3")+"<br />";
	mes+="Content:&nbsp;"+value("c4")+"<br />";
	if (send){
		//alert(encodeURIComponent(mes));
		title=encodeURIComponent(value("c0"));
		title=addslashes(title);
		message=encodeURIComponent(mes);
		message=addslashes(message);
		//alert("&m=contact&title="+title+"&email="+value("c2")+"&message="+escape(mes));
		ajax3("&m=contact&title="+title+"&email="+value("c2")+"&message="+message,"contact-form","contact-form","<p align='center'><img src='"+ltpl+"images/waiting.gif' /></p>");
	}
}
function change_image(method,id){
	imageid=value("image");
	catid=value("cat");
	if (method=="prev"){
		ajax3("&m=load_image&func=prev&catid="+catid+"&imageid="+imageid,"show-image","","");
	}
	if (method=="next"){
		ajax3("&m=load_image&func=next&catid="+catid+"&imageid="+imageid,"show-image","","");
	}
	if (method=="set"){
		ajax3("&m=load_image&func=set&catid="+catid+"&imageid="+id,"show-image","","");
	}
}
function show_full_image(image_id){
	window.open("?m=full_image_size&image_id="+image_id);
}
function join_news(){
	mail=value("mail_news");
	if (isMail(mail)){
		ajax4("contact.php","&m=joinnews&mail="+mail,"newsletter","","");
	}
}




function ajax(url,post,result)
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
catch (e)
  {
  try
	{
	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
  catch (e)
	{
	alert("Your browser does not support AJAX!");
	return false;
	}
  }
}
xmlHttp.onreadystatechange=function()
  {
  if(xmlHttp.readyState==4)
	{
		if (xmlHttp.responseText.search("specialfunctionreload")!=-1){
			window.location.reload();
		}else{
			//alert(xmlHttp.responseText);
			//document.write(xmlHttp.responseText);
			document.getElementById(result).innerHTML=xmlHttp.responseText;
		}
	}else{
	//document.getElementById(result).innerHTML='<img border="0" alt="" style="margin:20px;" src="'+ltpl+'_img/wait.gif" />';
	document.getElementById(result).innerHTML='<span style="color:#F697A5;font-size:9px;">Loading . . .</span>';
	}
  }
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send("language="+langname+post);
}
function sendcontact(){
	nc=document.getElementById("namecontact").value;
	ec=document.getElementById("emailcontact").value;
	pc=document.getElementById("phonecontact").value;
	cc=document.getElementById("companycontact").value;
	ic=document.getElementById("infocontact").value;
	ajax("contact.php?m=send","&nc="+nc+"&ec="+ec+"&pc="+pc+"&cc="+cc+"&ic="+ic,"contact");
}
