/* javascript functions (ORLY? ;-) */

function MySort(keys, values, order) {
 	//shellsort seems to perform the best in this particular situation
	for (var increment = keys.length / 2; increment > 0; increment = (increment == 2 ? 1 : Math.round(increment / 2.2))) {
		for (var i = increment; i < keys.length; i++) {
			var tempKey = keys[i];
			var tempVal = values[i];
			for (var j = i; j >= increment && ((keys[j - increment] > tempKey && order == 'asc') || (keys[j - increment] < tempKey && order == 'desc')); j -= increment){
				keys[j] = keys[j - increment];
				keys[j - increment] = tempKey;
				values[j] = values[j - increment];
				values[j - increment] = tempVal;
			}
		}
	}
	return values;
}

function makeActive(obj) {
	var sorter = document.getElementById("sorter");
	allhrefs = sorter.getElementsByTagName("a");
	for (var i=0;i<allhrefs.length;i++) {
		if (allhrefs[i].className == "sm active") {
			allhrefs[i].className  = 'sm';
		}
		if (allhrefs[i].className == "bg active") {
			allhrefs[i].className  = 'bg';

		}
	}
	if (obj.className == "sm active" || obj.className == "bg active");
	else obj.className = obj.className + ' active';
}


var regExp = /<\/?[^>]+>/gi;

function ReplaceTags(xStr) {
	xStr = xStr.replace(regExp,"");
	return xStr;
}

function hotelsort(key) {

	var hlist = document.getElementById("hotellist");

	var alldivs = document.getElementsByTagName("div");
	var hotels = Array();
	var keys = Array();
	var a = 0;
	var actid = document.getElementById("activesort");
	var actorder = document.getElementById("activeorder");

	if (actorder.title == 'desc')
		actorder.title = 'asc';
	else
		actorder.title = 'desc';
	if (actid.title != key) {
		actorder.title = 'asc';
		actid.title = key;
	}
	
	for (var i = 0; i < alldivs.length; i++) {
		if (alldivs[i].className == "hotelsr" || alldivs[i].className == "hotelsr r2") {
			hotels[a] = alldivs[i];
			if (key == 'price') {
				var values = hotels[a].getElementsByTagName("span");
				for (var b=0;b<values.length;b++)
					if (values[b].className == 'num') {
						keys[a] = parseInt(values[b].innerHTML);
					}
			}
			if (key == 'name') {
				var values = hotels[a].getElementsByTagName("h3");
				var hrefs = values[0].getElementsByTagName("a");
				var fixedContent = ReplaceTags(hrefs[0].innerHTML);
				keys[a] = fixedContent;
			}
			if (key == 'stars') {
				var values = hotels[a].getElementsByTagName("img");
				for (var b=0;b<values.length;b++)
					if (values[b].className == 'stars') {
						keys[a] = values[b].alt;
					}
			}
			if (key == 'userpick') {
				var values = hotels[a].getElementsByTagName("span");
				for (var b=0;b<values.length;b++)
					if (values[b].className == 'userpick') {
						keys[a] = parseInt(values[b].title);
					}
			}
			a = a + 1;
		}
	}
	
	var order = actorder.title;
	hotels = MySort(keys, hotels, order);

	var out = '';
	for (var i = 0; i < hotels.length; i++) {
		var modulo = i % 2;
		if (modulo == 0)
			out = out + '<div class="hotelsr">';
		else
			out = out + '<div class="hotelsr r2">';
		out = out + hotels[i].innerHTML;
		out = out + '</div>';
	}
	hlist.innerHTML = out;

}
function carsort(key) {
	var alldivs = document.getElementsByTagName("div");
	var cars = Array();
	var keys = Array();
	var a = 0;
	var actid = document.getElementById("caractivesort");
	var actorder = document.getElementById("caractiveorder");
	for (var i=0;i<alldivs.length;i++) {
		if (alldivs[i].className == "cars" || alldivs[i].className == "cars r2") {
			cars[a] = alldivs[i];
			if (key == 'price') {
				var values = cars[a].getElementsByTagName("span");
				for (var b=0;b<values.length;b++)
					if (values[b].className == 'num') {
						keys[a] = parseInt(values[b].innerHTML);
					}
			}
			if (key == 'size') {
				var values = cars[a].getElementsByTagName("h3");
				var spans = values[0].getElementsByTagName("span");
				var fixedContent = ReplaceTags(spans[0].innerHTML);
				keys[a] = fixedContent;
			}
			if (key == 'provider') {
				var values = cars[a].getElementsByTagName("h3");
				var img = values[0].getElementsByTagName("img");
				var fixedContent = img[0].alt;
				keys[a] = fixedContent;
			}
			a = a + 1;
		}
	}
	var clist = document.getElementById("carlist");
	var order = actorder.title;
	cars = MySort(keys, cars, order);

	var out = '';
	for (var i=0;i<cars.length;i++) {
		var modulo = i % 2;
		if (modulo == 0)
			out = out + '<div class="cars">';
		else
			out = out + '<div class="cars r2">';
		out = out + cars[i].innerHTML;
		out = out + '</div>';
	}
	clist.innerHTML = out;
	if (actorder.title == 'desc')
		actorder.title = 'asc';
	else actorder.title = 'desc';
	if (actid.title != key) {
		actorder.title = 'asc';
		actid.title = key;
	}
}

function checkForm() {
	var actdate = new Date(Date.parse(new Date().toDateString()));
	var actyear = actdate.getFullYear();
	var actmonth = actdate.getMonth();
	if (actmonth < 10) actmonth = '0' + actmonth;
	var actday = actdate.getDate();
	if (actday < 10) actday = '0' + actday;
	var actnow = parseInt(actyear + actmonth + actday);
	var valuein = document.forms[0].inn.value;
	var actin = parseInt(valuein.substr(6,4) + valuein.substr(0,2) + valuein.substr(3,2));
	var valueout = document.forms[0].out.value;
	var actout = parseInt(valueout.substr(6,4) + valueout.substr(0,2) + valueout.substr(3,2));
	if (actin > actout) {
		alert('Sure?');
		return false;
	}
	if (actin < actnow || actout < actnow) {
		alert('Reservation in the past?');
		return false;
	}
	return true;
}

function addim(obj,dim) {
	var indim = '';
	if (obj.width >= obj.height) indim = 'width="' + dim + '"';
	else indim = 'height="' + dim + '"';
	return '<img src="' + obj.src + '" alt="' + obj.alt + '" ' + dim + ' />' + "\n" + '<br />' + obj.alt;
}
function photo(act) {
	var gall = document.getElementById("gallery");
	var imgl = document.getElementById("gallery_left")
	var imgleft = imgl.getElementsByTagName("img");
	var imgc = document.getElementById("gallery_central")
	var imgcentral = imgc.getElementsByTagName("img");
	var imgr = document.getElementById("gallery_right")
	var imgright = imgr.getElementsByTagName("img");
	var imagl = '<br />' + "\n";
	var imagc = '<br />' + "\n";
	var imagcdef = imagc;
	var imagr = '<br />' + "\n";
	if (imgleft.length > 0) {
		for (var i=0;i<imgleft.length;i++) {
			if (act == 'next' && i == imgleft.length - 1) {
				imagc = imagc + addim(imgleft[i],300);
				imagr = imagr + addim(imgcentral[0],75);
			} else {
				imagl = imagl + addim(imgleft[0],75);
			}
		}
	}
	if (imgright.length > 0) {
		for (var i=0;i<imgright.length;i++) {
			if (act == 'prev' && i == 0) {
				imagl = imagl + addim(imgcentral[0],75);
				imagc = imagc + addim(imgright[i],300);
			} else {
				imagr = imagr + addim(imgright[i],75);
			}
		}
	}
	if (imgright.length == 0) {
		if (act == 'next') {
			imagc = imagcdef + addim(imgleft[0],300);
			imagr = imagr + addim(imgcentral[0],75);
		} else
			imagc = imagcdef + addim(imgright[0],300);
	}
	if (imgleft.length == 0) {
		if (act == 'prev') {
			imagc = imagcdef + addim(imgright[0],300);
			imagl = imagl + addim(imgcentral[0],75);
		} else
			imagc = imagcdef + addim(imgleft[0],300);
	}
	imgl.innerHTML = imagl;
	imgc.innerHTML = imagc;
	imgr.innerHTML = imagr;
}
function activate(alttext) {
	var gall = document.getElementById("gallery");
	var imgc = document.getElementById("gallery_central")
	var imgcentral = imgc.getElementsByTagName("img");
	var imgr = document.getElementById("gallery_right")
	var imgright = imgr.getElementsByTagName("img");
	var imagc = '';
	var thistext = '';
	for (var i=0;i<imgright.length;i++) {
		thistext = imgright[i].id;
		if ('i' + alttext == thistext) {
			imgright[i].className = "selected";
			imagc = imagc + addim(imgright[i],300);
		}
		else imgright[i].className = "";
	}
	imgc.innerHTML = '<div class="borderingdetail">' + imagc + '</div>';
}

function activeTab(obj) { //deprecated
	var tabsmap = document.getElementById("tabs");
	allhrefs = tabsmap.getElementsByTagName("a");
	for (var i=0;i<allhrefs.length;i++) {
		if (allhrefs[i].className == "sm active") {
			allhrefs[i].className  = 'sm';
		}
		if (allhrefs[i].className == "bg active") {
			allhrefs[i].className  = 'bg';
		}
	}
	if (obj.className == 'sm active' || obj.className == 'bg active');
	else
		obj.className = obj.className + ' active';
}


function tab(cname) { //deprecated
	var tabs = document.getElementById("tabcontent");
	alltabs = tabs.getElementsByTagName("div");
	for (var i=0;i<alltabs.length;i++) {
		var str = new String(alltabs[i].className);
		var regEx = new RegExp (' active', 'gi');
		alltabs[i].className = str.replace(regEx, '');
	}
	for (var i=0;i<alltabs.length;i++)
		if (alltabs[i].className == cname)
			alltabs[i].className = alltabs[i].className + ' active';
}

function TabClick(tabname) { // called when user clicks on tab

	//switch tab content 

	//take tab content elements
	var tabcontent = document.getElementById("tabcontent");

/*	
	var xpathResult = document.evaluate(
		"//div",
		tabcontent,
		null,
		XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
		null);

	// remove active tag from all divs
	for (var i=0; i < xpathResult.snapshotLength; i++) {
		element = xpathResult.snapshotItem(i);
		element.className = element.className.replace('active', '');
	}
*/	

	alldivs = tabcontent.getElementsByTagName("div");
	// remove active tag from all a's
	for (var i=0; i < alldivs.length; i++) {
		alldivs[i].className = alldivs[i].className.replace('active', '');
	}

	// add active tag to active tab
	var acttab = document.getElementById("tabc_" + tabname);
	acttab.className = acttab.className + ' active';
	

	//switch tab apearance

	var tabsmap = document.getElementById("tabs");
	allhrefs = tabsmap.getElementsByTagName("a");

	// remove active tag from all a's
	for (var i=0; i < allhrefs.length; i++) {
		allhrefs[i].className = allhrefs[i].className.replace('active', '');
	}

	// add active tag to active tab
	var acttab = document.getElementById("tab_" + tabname);
	acttab.className = acttab.className + ' active';

}



function AddAddressLine() {
	var adr = document.getElementById("addresses");
	elems = adr.getElementsByTagName("p");
	var nextindex = elems.length + 1;
	var newline = document.createElement("p");
	
	newline.innerHTML = '<label for="addressLine' + nextindex + '"><span>Address</span>: </label><input type="text" name="addressLine' + nextindex + '" id="addressLine' + nextindex + '" value="" />';
//	newline.innerHTML = '<label for="phonetype' + nextindex + '"><span>Phone: </span></label> <select name="phonetype' + nextindex + '"><option value="Home">Home</option><option value="Business">Business</option><option value="Mobile">Mobile</option><option value="Reservation">Reservation</option><option value="Fax">Fax</option><option value="TELEX ">TELEX</option></select><input name="phonenumber' + nextindex + '" value="" type="text">';
	adr.appendChild(newline);

}


function AddPhoneLine() {

	var ph = document.getElementById("phones");
	var elems = ph.getElementsByTagName("p");
	var nextindex = elems.length + 1;
	var newline = document.createElement("p");
	newline.innerHTML = '<label for="phonetype' + nextindex + '"><span>Phone: </span></label> <select name="phonetype' + nextindex + '"><option value="Home">Home</option><option value="Business">Business</option><option value="Mobile">Mobile</option><option value="Reservation">Reservation</option><option value="Fax">Fax</option><option value="TELEX ">TELEX</option></select><input name="phonenumber' + nextindex + '" value="" type="text">';
	ph.appendChild(newline);

}

function setRadio(param) {
	var ph = document.getElementById("lcards");
	elems = ph.getElementsByTagName("input");
	for (var i=0;i<elems.length;i++)
		if (elems[i].value == param)
			elems[i].checked = true;
		else
			elems[i].checked = false;
}


function activateTab() {
	var acttab = document.location.hash;
	if (acttab == '')
		acttab = '#tab1';
	var tb = document.getElementById("tabcontent");
	var tabs = tb.getElementsByTagName("div");
	var tmp = '';
	var done = 0;
	for (var i=0;i<tabs.length;i++)
		if ('#' + tabs[i].className == acttab) {
			var tbs = document.getElementById("tabs");
			var tbss = tbs.getElementsByTagName("a");
			for (var a=0;a<tbss.length;a++)
				if ('#' + tbss[a].id == acttab)
					activeTab(tbss[a]);
			tabs[i].className = tabs[i].className + ' active';
			done = 1;
		}
	if (done == 0)
		tabs[0].className = tabs[0].className + ' active';
}


function more() {
	var d = document.getElementById("gallery");
	if (d.className == 'less')
		d.className = 'more';
	else d.className = 'less';
}

/*
function ToggleCID() {
	var cid = document.getElementById("cidcontainer");
 	cid.style.display = (cid.style.display != 'none' ? 'none' : '' );

}
*/

function SetChecked(obj) {
 	var o = document.getElementById(obj); 
 	o.checked = "checked";
}


function ToggleDisplay(element) {
	var moo = document.getElementById(element);
 	moo.style.display = (moo.style.display != 'none' ? 'none' : '' );
}

function ToggleDisplayNarrowSearch() {
	var frm = document.getElementById('advnarrowsearchform');
 	var header2 = document.getElementById('header2');
	if (frm.style.display == 'none') {
		frm.style.display =  '';
	    header2.style.height = '11.5em';
	} else {
		frm.style.display =  'none';
	    header2.style.height = '6em';

	}

}



/* end */