var suggestions=new Array();
var words=new Array();
var urls=new Array();
var descs=new Array();
var url="";
var suggestionstoshow = 4;
var totalResults = 0;

var offset=0;
var highlight=0;
var active=0;
var old_string="";
var timer;

var c_a=8;

function next_article()
{ c_a++;
  if(c_a==2)
  { c_a++;
  }
  if(c_a==9)
  { c_a=1;
  }	
  show_article(c_a);
}

function next_article2()
{ c_a++;
  if(c_a==2)
  { c_a++;
  }
  if(c_a==9)
  { c_a=1;
  }	
  show_article2(c_a);
}

function show_article(article)
{ for(i=1;i<9;i++)
  { if(i!=2)
    { document.getElementById("article_"+i).style.display="none";
      document.getElementById("holder_"+i).style.display="block";
    }
  }
  document.getElementById("holder_"+article).style.display="none";
  document.getElementById("article_"+article).style.display="block";
  document.getElementById("article_image").src=document.getElementById("image_"+article).src;
  document.getElementById("article_href").href=document.getElementById("href_"+article).href;
  c_a=article;
}

function show_article2(article) {
	for(i=1;i<9;i++) {
		if(i!=2) {
			document.getElementById("arrow_"+i).style.display="none";
		}
	}
	
	document.getElementById("arrow_"+article).style.display="inline-block";
	document.getElementById("article_image").src=document.getElementById("image_"+article).src;
	document.getElementById("article_href").href=document.getElementById("href_"+article).href;
	c_a=article;
}

function stripHTML(oldString) 
{ return oldString.replace(/(<([^>]+)>)/ig,""); 
}

function scroll_up()
{ offset--;
  load(1);
}

function scroll_down()
{ offset++;
  load(1);
}

function begin_timer()
{ timer=setTimeout("close_keyword()","20000");
}


function close_keyword()
{ active=0;
  document.getElementById("DATES_BOX").style.display="block";
  document.getElementById("KEYWORD_BOX").style.display="none";
  clearTimeout(timer);
}

function open_keyword()
{ active=1;
  document.getElementById("DATES_BOX").style.display="none";
  document.getElementById("KEYWORD_BOX").style.display="block";
  clearTimeout(timer);
  begin_timer();
}

function reset_keyword()
{ if(document.getElementById("KEYWORD").value=="Enter hotel name, city or country" || url!="")
  { document.getElementById("KEYWORD").value="";
  }
}

function waiting()
{ for(i=0;i<4;i++)
  { document.getElementById("SUGGEST_"+i).innerHTML="";
    document.getElementById("LINK_"+i).innerHTML="";
  }
  document.getElementById("SUGGEST_0").innerHTML="<img src='"+h+"images/ajax-loader.gif' height='13' width='13'>&nbsp;Retrieving Suggestions...";
}

function set_keyword(element)
{ var word=words[element];
  if(descs[element]!="") {
  	word = word;
  }
  document.getElementById("KEYWORD").value=word;
  url=urls[element];
  close_keyword();
  document.getElementById("KEYWORD").focus();
  //window.location.href=h+""+urls[element];
}

function load(mode) {
	var word;
	
	for(i = 0; i < suggestionstoshow; i++) {
		if(words[i+offset] && words[i+offset]!='') {
			word="<a href=\"javascript:void(0)\" onclick=\"set_keyword("+(i+offset)+")\" class='suggestionLink'>"+words[i+offset];
			
			if(descs[i+offset]!="") {
				word=word+" <span class='suggestionLocation'>| "+descs[i+offset]+"</span>";
			}
			
			word = word+"</a>";
			
			document.getElementById("SUGGEST_"+i).innerHTML = word;			
		} else {
			document.getElementById("SUGGEST_"+i).innerHTML="";
		}
	}
	
	if(mode==1) {
		if(words.length>0) {
			open_keyword();
		} else {
			close_keyword();
		}
		
		highlight=0;
		set_highlight();
	}
}

function explore() { 
	var errorMsg = '';
	var fday = '';
	var tday = '';
	
	if(url != "") {
		document.booking.action=r+url+"";
	} else {
		if(document.getElementById("KEYWORD").value == "" || document.getElementById("KEYWORD").value == " " || document.getElementById("KEYWORD").value=="Enter hotel name, city or country") {
			errorMsg += "Please enter a hotel name, city or country.<br><br>";
			document.getElementById("KEYWORD").focus();
		}
	}

	var arrival_date = document.getElementById("arrival_date").value;
	if(arrival_date != '' && arrival_date != 'Arrival') {
		var arrival_date_list = arrival_date.split(",");
		fday = arrival_date_list[1].substr(5,2);
		var fmonth_name = arrival_date_list[1].substr(1,3);
		var fmonth_num = monthNameToNum(fmonth_name);
		var fyear = arrival_date_list[2].substr(1,4);
		
		var fmonth = fmonth_num + "-" + fyear;
		document.getElementById("FDAY").value = fday;
		document.getElementById("FMONTH").value = fmonth;
	}

	var departure_date = document.getElementById("departure_date").value;
	if(departure_date != '' && departure_date != 'Departure') {
		var departure_date_list = departure_date.split(",");
		tday = departure_date_list[1].substr(5,2);
		var tmonth_name = departure_date_list[1].substr(1,3);
		var tmonth_num = monthNameToNum(tmonth_name);
		var tyear = departure_date_list[2].substr(1,4);
		
		var tmonth = tmonth_num + "-" + tyear;
		document.getElementById("TDAY").value = tday;
		document.getElementById("TMONTH").value = tmonth;		
	}
	
	if(fday != '' && tday != '') {
		if(Number(tyear) < Number(fyear)) {
			errorMsg += "Your departure date must be after your arrival date.<br>";
		} else if(Number(tmonth_num) < Number(fmonth_num) && Number(tyear) == Number(fyear)) {
			errorMsg += "Your departure date must be after your arrival date.<br>";
		} else if(Number(tday) <= Number(fday) && Number(tmonth_num) == Number(fmonth_num) && Number(tyear) == Number(fyear)) {
			errorMsg += "Your departure date must be after your arrival date.<br>";
		}		
	}
	
	if(fday != '' && tday == '') {
		errorMsg += "You must select a departure date.";
	}

	if(fday == '' && tday != '') {
		errorMsg += "You must select an arrival date.";
	}

	if(errorMsg != '') {
		throwErrorMsg(errorMsg);
		return false;
	}
	
	if(fday != '' && tday != '') {
		document.getElementById("AVAILABILITY").value="check";
	}
	
	if(url != "") {
		document.booking.method="post";
		document.getElementById("KEYWORD").value="";
	}
	document.booking.submit();
}

function throwErrorMsg (msg) {
	document.getElementById("errorMsg").innerHTML = msg;
	$("#errorMsg").dialog('open');
}

function go_button()
{ document.getElementById("KEYWORD").value="";
  document.getElementById("AVAILABILITY").value="check";
  document.booking.submit();
}

function set_highlight() {
}

function keyup()
{ if(active==1)
  { if(highlight>1)
    { highlight--;
      set_highlight();
	}else
    { if(offset>0)
      { offset--;
        load(0);
      }else
      { highlight=0;
        set_highlight();
      }
    }
  }
  clearTimeout(timer);
  begin_timer();
}
function keydown()
{ if(active==1)
  { if(highlight+1<words.length && highlight<4)
    { highlight++;
      set_highlight();
	}else
    { if(offset+5<words.length)
      { offset++;
        load(0);
      }
    }
  }
  clearTimeout(timer);
  begin_timer();
}



function keyselect()
{ if(active==1 && highlight>0)
  { set_keyword(highlight+offset-1);
  }else
  { explore();
  }
  return false;
}

function swap()
{ if(document.booking.AVAILABILITY.value=="check")
  { document.getElementById("fake_dates").style.display="block";
    document.getElementById("real_dates").style.display="none";
    document.booking.AVAILABILITY.value="";	
  }else
  { document.getElementById("fake_dates").style.display="none";
    document.getElementById("real_dates").style.display="block";
    document.booking.AVAILABILITY.value="check";	
  }
}

var ideas=new Array();
var iurl=new Array();
var idea=0;


function go_idea()
{ idea++;
  if(idea>ideas.length-1)
  { idea=0;
  }
  document.getElementById("idea").innerHTML="<a href='"+h+""+iurl[idea]+"' class='gf'>"+ideas[idea]+"?</a>";
  if(is_home==true)
  { next_article();
  }
  setTimeout("go_idea()",5000);	
}

function go_idea2()
{ idea++;
  if(idea>ideas.length-1)
  { idea=0;
  }
  document.getElementById("idea").innerHTML="<a href='"+h+""+iurl[idea]+"' class='gf'>"+ideas[idea]+"?</a>";
  if(is_home==true)
  { next_article2();
  }
  setTimeout("go_idea2()",5000);	
}

var ajaxcount=0;
var ajaxfunc=new Array();

function goajax(e) {
	var keycode = (window.event) ? event.keyCode : e.keyCode;

	if(ajaxfunc[ajaxcount]) {
		if(keycode!=38 && keycode!=40 && keycode!=13) {
			ajaxfunc[ajaxcount].abort();
			//if(active==1 && keycode!=8) {
			//	waiting();
			//}
		}
	}
	
	ajaxcount++;
	ajaxfunc[ajaxcount] = ajaxFunction(keycode);
}

function ajaxFunction(keycode) {
	var search_string=document.getElementById("KEYWORD").value;
	search_string = search_string.replace(/\s+/g,'* ');

	var xmlHttp;
	
	if(keycode==38) {
		keyup();
		return false;
	}
	
	if(keycode==40) {
		keydown();
		return false;
	}
	
	if(keycode==13) {
		keyselect();
		return false;
	}
	
	if(true) {
		suggestions = null;
		suggestions = new Array();
		words = null;
		words = new Array();
		urls = null;
		urls = new Array();
		descs = null;
		descs = new Array();
		
		offset = 0;
		document.getElementById("TURL").value = "";
		old_string = search_string;
		old_string = old_string.replace(/\s+/g,'* ');
		
		if(search_string.length > 1) {
			try {
				xmlHttp=new XMLHttpRequest();
			} catch (e) {
				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 != "#") {
						suggestions = xmlHttp.responseText.split("|");
						for(i = 0; i < suggestions.length; i++) {
							words[i] = suggestions[i].substring(0, suggestions[i].indexOf("#"));
							urls[i] = suggestions[i].substring(suggestions[i].indexOf("#")+1, suggestions[i].indexOf("^"));
							descs[i] = suggestions[i].substring(suggestions[i].indexOf("^")+1, suggestions[i].length);
						}
					}
					
					totalResults = (words.length - (suggestionstoshow + 1));
					
					$("#sliderVertical").slider('option', 'max', totalResults);
					$("#sliderVertical").slider('value', totalResults);
					offset = 0;
					load(1);
				}
			}
			
			var target_url = h + "suggestions.php?SEARCH="+search_string+"*&ZONE_ID="+zone_id+"&COUNTRY_ID="+country_id+"&REGION_ID="+region_id+"&AREA_ID="+area_id;
			
			xmlHttp.open("GET", target_url, true);
			xmlHttp.send(null); 
			return xmlHttp;
		} else {
			load(1);
		}
	}
	
	return false;
}