// =======================
// Component Reservations Frontend Javascript
// Copyright: (C) 2008-2009 Is Open Source. All rights reserved
// Author: Ioannis Sannos
// Author URL: www.isopensource.com
// E-mail:  info [AT] isopensource [DOT] com
// License: Commercial
//=======================

function ressubmitbutton(pressbutton, formname) {
    if (formname == "") { formname = "resForm"; }
	ressubmitform(pressbutton, formname);
}

function ressubmitform(pressbutton, formname) {
    if (formname == "") { formname = "resForm"; }
    var myform = eval("document."+formname);
	myform.task.value=pressbutton;
	try {
		myform.onsubmit();
		}
	catch(e){}
	myform.submit();
}

function resisChecked(isitchecked, formname){
    if (formname == "") { formname = "resForm"; }
    var myform = eval("document."+formname);
	if (isitchecked == true){
		myform.boxchecked.value++;
	}
	else {
		myform.boxchecked.value--;
	}
}

function resBolder(bid, colorOn, colorOff) {
	var tbox = 'compare'+bid;
	var cboxn = 'cb'+bid;
	var cbox = document.getElementById(cboxn);

	if (cbox.checked == true) {
		document.getElementById(tbox).style.color = ''+colorOn+'';
		document.getElementById(tbox).style.fontWeight = 'bold';
	} else {
		document.getElementById(tbox).style.color = ''+colorOff+'';
		document.getElementById(tbox).style.fontWeight = 'normal';
	}
}

function reservToggle(layer) {
	var el = document.getElementById(layer);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	} else {
		el.style.display = '';
	}
}


/* INITIALIZE AJAX CALL */
function resajaxcall() {
    var ro;
    if(window.XMLHttpRequest) { // Non-IE browsers
        ro = new XMLHttpRequest();
    } else if (window.ActiveXObject){ // IE
        ro=new ActiveXObject("Msxml2.XMLHTTP");
        if (!ro) {
            ro=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return ro;
}


/* PUBLISH COMMENT (AJAX) */
function respubcomment(id, livesite) {
	var ajaxbox = 'rescombox'+id;
	var el = document.getElementById(ajaxbox);
	var rhttp = resajaxcall();
    var rnd = Math.random();
    try {
        rhttp.open('POST', livesite+"/index2.php");
        rhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        rhttp.setRequestHeader('charset', 'utf-8');
        rhttp.onreadystatechange = function () {
			if (rhttp.readyState == 4) {
				if (rhttp.status!=200) { alert('Error, please retry'); }
				var nstat = parseInt(rhttp.responseText);
				if (nstat > 0) {
					alert('Comment successfully published!');
					el.innerHTML = '';
					el.style.display = 'none';
				} else {
					alert('Could not publish comment!');
				}
			}
		};
        rhttp.send('option=com_reservations&task=pubcomment&id='+id+'&rnd='+rnd);
    }
    catch(e){}
    finally{}
}


/* DELETE COMMENT (AJAX) */
function resdelcomment(id, livesite) {
	var ulel = document.getElementById('rescomul');
	var ajaxbox = 'rescomline'+id;
	var el = document.getElementById(ajaxbox);
	var rhttp = resajaxcall();
    var rnd = Math.random();
    try {
        rhttp.open('POST', livesite+"/index2.php");
        rhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        rhttp.setRequestHeader('charset', 'utf-8');
        rhttp.onreadystatechange = function () {
			if (rhttp.readyState == 4) {
				if (rhttp.status!=200) { alert('Error, please retry'); }
				var nstat = parseInt(rhttp.responseText);
				if (nstat > 0) {
					alert('Comment deleted successfully!');
					el.innerHTML = '';
					el.style.display = 'none';
					ulel.removeChild(el);
				} else {
					alert('Could not delete comment!');
				}
			}
		};
        rhttp.send('option=com_reservations&task=delcomment&id='+id+'&rnd='+rnd);
    }
    catch(e){}
    finally{}
}


/* LIMIT TEXT IN TEXT BOX */
function resLimitComment(fieldid) {
	var limel = document.getElementById(fieldid);
	if (limel.value.length > 200) {
		limel.value = limel.value.substring(0, 200);
	}
}


/* TOGGLE ROOT-LOCATION VISIBILITY */
function restoggleroot(rootlid) {
  	if (!document.getElementById) { return false; }
	if (!document.getElementById('resrootul'+rootlid)) { return false; }
	var ulroot = document.getElementById('resrootul'+rootlid);
	var liitems = ulroot.getElementsByTagName("li");
	var matcher1 = new RegExp('resli-1-'+rootlid,"i");
	var matcher2 = new RegExp('resli-2-'+rootlid,"i");
	var orato = -1;
	for (var i = 0; i < liitems.length; i++) {
		if (liitems[i].getAttribute('id')) {
			var strid = liitems[i].getAttribute('id');
			if (orato == -1) {
				if (strid.match(matcher1) || strid.match(matcher2)) {
					if (liitems[i].style.display == 'none') {
						liitems[i].style.display = 'block';
						orato = 1;
					} else {
						liitems[i].style.display = 'none';
						orato = 0;
					}
				}
			} else if (orato == 1) {
				liitems[i].style.display = 'block';
			} else {
				liitems[i].style.display = 'none';
			}
		}
	}
}


/* TOGGLE SUB-LOCATION VISIBILITY */
function restogglesub(rootlid, parlid) {
  	if (!document.getElementById) { return false; }
	if (!document.getElementById('resrootul'+rootlid)) { return false; }
	var ulroot = document.getElementById('resrootul'+rootlid);
	var liitems = ulroot.getElementsByTagName('li');
	var matcher = new RegExp('resli-2-'+rootlid+'-'+parlid,"i");
	for (var i = 0; i < liitems.length; i++) {
		if (liitems[i].getAttribute('id')) {
			var strid = liitems[i].getAttribute('id');
			if (strid.match(matcher)) {
				if (liitems[i].style.display == 'none') {
					liitems[i].style.display = 'block';
				} else {
					liitems[i].style.display = 'none';
				}
			}
		}
	}
}


/* SUBMIT SEARCH NAVIGATION FORM */
function resnavsearchpg(pg) {
	var rsfm = document.getElementById('respgsearchfm');
	rsfm.page.value = pg;
	try {
		rsfm.onsubmit();
	}
	catch(e){}
	rsfm.submit();
}


/* LOAD TRIPADVISOR FEED */
function loadtripadvisor(feedurl, livesite) {
	if (feedurl == '') { alert('Invalid tripadvisor feed URL!'); return false; }
	var el = document.getElementById('restripadvbox');
	el.innerHTML = '';
	var rhttp = resajaxcall();
    var rnd = Math.random();
    try {
        rhttp.open('POST', livesite+"/index2.php");
        rhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        rhttp.setRequestHeader('charset', 'utf-8');
		rhttp.onreadystatechange = function () {
			if (rhttp.readyState == 1) {
				el.innerHTML = '<div class="reswarning">Fetching reviews from tripadvisor. Please wait...</div>';
			}
			if (rhttp.readyState == 2) {
				el.innerHTML = '<div class="reswarning">Fetching reviews from tripadvisor. Please wait...</div>';
			}
			if (rhttp.readyState == 3) {
				el.innerHTML = '<div class="reswarning">Fetching reviews from tripadvisor. Please wait...</div>';
			}
			if (rhttp.readyState == 4) {
				if (rhttp.status!=200) {
					el.innerHTML = '<div class="resalert">Could not load tripadvisor reviews</div>';
				} else {
					el.innerHTML = rhttp.responseText;
				}
			}
		};
        rhttp.send('option=com_reservations&task=tripadvisor&feedurl='+feedurl+'&rnd='+rnd);
    }
    catch(e){}
    finally{}
}

/* HIDE TRIPADVISOR REVIEWS */
function hidetripadvisor() {
	if (document.getElementById('restripadvbox')) {
		document.getElementById('restripadvbox').innerHTML = '';
	}
}

/* CHECK RESERVATION MOVE ELIGIBILITY */
function rescheckmove(resid, livesite) {
	if ((resid == '') || (resid == '0')) { alert('Invalid reservation!'); return false; }
	var mdaysObj = document.getElementById('movedays');
	var mdays = mdaysObj.options[mdaysObj.selectedIndex].value;
	mdays = parseInt(mdays);
	var el = document.getElementById('rescmresult');
	el.innerHTML = '';

	var rhttp = resajaxcall();
    var rnd = Math.random();
    try {
        rhttp.open('POST', livesite+"/index2.php");
        rhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        rhttp.setRequestHeader('charset', 'utf-8');
		rhttp.onreadystatechange = function () {
			if (rhttp.readyState == 1) {
				el.innerHTML = 'Checking move eligibility...';
			}
			if (rhttp.readyState == 2) {
				el.innerHTML = 'Checking move eligibility...';
			}
			if (rhttp.readyState == 3) {
				el.innerHTML = 'Checking move eligibility...';
			}
			if (rhttp.readyState == 4) {
				if (rhttp.status!=200) {
					el.innerHTML = 'Could not check move eligibility! Please re-try.';
				} else {
					el.innerHTML = rhttp.responseText;
				}
			}
		};
        rhttp.send('option=com_reservations&task=cpanel&act=checkmove&resid='+resid+'&movedays='+mdays+'&rnd='+rnd);
    }
    catch(e){}
    finally{}
}

