﻿function $m(theVar){
	return document.getElementById(theVar)
}
function remove(theVar){
	var theParent = theVar.parentNode;
	theParent.removeChild(theVar);
}
function addEvent(obj, evType, fn){
	if(obj.addEventListener)
	    obj.addEventListener(evType, fn, true)
	if(obj.attachEvent)
	    obj.attachEvent("on"+evType, fn)
}
function removeEvent(obj, type, fn){
	if(obj.detachEvent){
		obj.detachEvent('on'+type, fn);
	}else{
		obj.removeEventListener(type, fn, false);
	}
}
function isWebKit(){
	return RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function ajaxUpload(form,url_action,id_element,html_show_loading,html_error_http){
	var detectWebKit = isWebKit();
	form = typeof(form)=="string"?$m(form):form;
	var erro="";
	if(form==null || typeof(form)=="undefined"){
		erro += "The form of 1st parameter does not exists.\n";
	}else if(form.nodeName.toLowerCase()!="form"){
		erro += "The form of 1st parameter its not a form.\n";
	}
	if($m(id_element)==null){
		erro += "The element of 3rd parameter does not exists.\n";
	}
	if(erro.length>0){
		alert("Error in call ajaxUpload:\n" + erro);
		return;
	}
	var iframe = document.createElement("iframe");
	iframe.setAttribute("id","ajax-temp");
	iframe.setAttribute("name","ajax-temp");
	iframe.setAttribute("width","0");
	iframe.setAttribute("height","0");
	iframe.setAttribute("border","0");
	iframe.setAttribute("style","width: 0; height: 0; border: none;");
	form.parentNode.appendChild(iframe);
	window.frames['ajax-temp'].name="ajax-temp";
	var doUpload = function(){
		removeEvent($m('ajax-temp'),"load", doUpload);
		var cross = "javascript: ";
		cross += "window.parent.$m('"+id_element+"').innerHTML = document.body.innerHTML; void(0);";
		$m(id_element).innerHTML = html_error_http;
		$m('ajax-temp').src = cross;
		if(detectWebKit){
        	remove($m('ajax-temp'));
        }else{
        	setTimeout(function(){ remove($m('ajax-temp'))}, 250);
        }
    }
	addEvent($m('ajax-temp'),"load", doUpload);
	form.setAttribute("target","ajax-temp");
	form.setAttribute("action",url_action);
	form.setAttribute("method","post");
	form.setAttribute("enctype","multipart/form-data");
	form.setAttribute("encoding","multipart/form-data");
	form.submit();
	if(html_show_loading.length > 0){
		$m(id_element).innerHTML = html_show_loading;
	}
}

/*these functions are for the ajax assist on the search*/
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

function deleteImage(imageid, commentid, idlocation){
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		searchReq.open("GET", 'scripts/deleteimage.php?image=' + escape(imageid) + '&comment=' + escape(commentid) + '&location' + escape(idlocation), true);
		searchReq.onreadystatechange = handledeleteImage; 
		searchReq.send(null);
	}	
}

function handledeleteImage() {
	if (searchReq.readyState == 4) {
		var str = searchReq.responseText;
		document.getElementById('picholder').innerHTML = str;
	}
}

//Get portnames for city
function setSearch2(value) {
	document.getElementById('hotel').value = value;
	document.getElementById('hotelnamelegend').innerHTML = ' for ' + value;
	document.getElementById('search_Hotel').innerHTML = '';
}

function deleteImage(imageid, commentid, idlocation){
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		searchReq.open("GET", 'scripts/deleteimage.php?image=' + escape(imageid) + '&comment=' + escape(commentid) + '&location' + escape(idlocation), true);
		searchReq.onreadystatechange = handledeleteImage; 
		searchReq.send(null);
	}	
}

//Gets ports depending on users country choice.
function getCountry() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('portcountry').value);
		searchReq.open("GET", 'scripts/getCountry.php?country=' + str, true);
		searchReq.onreadystatechange = handleGetCountry; 
		searchReq.send(null);
	}		
}

function handleGetCountry() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('portnames')
		ss.innerHTML = '';
		var str = searchReq.responseText;
		ss.innerHTML += str;
	}
}

//Gets ports depending on users country choice.
function sumbitPortReview() {
	window.location.hash="poc"; 
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		//store form elements in variables
		var portname = escape(document.getElementById('portname').value);
		var shipid = escape(document.getElementById('ships').value);
		var porttext = escape(document.getElementById('porttext').value);
		var bestbar = escape(document.getElementById('bestbar').value);
		var bestrestaurant = escape(document.getElementById('bestrestaurant').value);
		var bestsight = escape(document.getElementById('bestsight').value);
		var bestthing = escape(document.getElementById('bestthing').value);
		var avoid = escape(document.getElementById('wtavoid').value);
		var username = escape(document.getElementById('username').value);
		var email = escape(document.getElementById('email').value);
		
		if(portname == escape("Please Choose a Country..")){
			document.getElementById('pocerror').innerHTML = "Please complete the current form before attempting to add another review"
		}else{
			var pocadded = document.getElementById('pocadded');
			if(pocadded.innerHTML == ""){
				pocadded.innerHTML = "Ports Added: " + document.getElementById('portname').value;
			}else{
				pocadded.innerHTML += ", " + document.getElementById('portname').value;
			}
			
		//request and handle submit form
			searchReq.open("GET", 'scripts/reviewPortOfCall.php?ships=' + shipid + '&port=' + portname + '&text=' + porttext + '&bar=' + bestbar + '&restaurant=' + bestrestaurant + '&sight=' + bestsight + '&thing=' + bestthing + '&avoid=' + avoid + '&name=' + username + '&email=' + email, true);
			searchReq.onreadystatechange = handleSumbitPortReview; 
			searchReq.send(null);
			}
	}		
}

function handleSumbitPortReview() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('portreview')
		ss.innerHTML = '';
		var str = searchReq.responseText;
		ss.innerHTML += str;
	}
}

function manPort() {
		var ss = document.getElementById('portnames');
		var textbox = '<input type="text" id="portname" style="width: 95%; padding:5px; margin-bottom:5px; border:1px solid #e8e6e6; font-family:Verdana, Geneva, sans-serif;" value="Portname..." onclick="if(this.value == \'Portname...\'){this.value = \'\'}" />';
		ss.innerHTML = textbox;
}

function approveImage(imageid) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
			searchReq.open("GET", 'approveImage.php?image=' + imageid, true);
			searchReq.onreadystatechange = handleApproveImage; 
			searchReq.send(null);
	}		
}

function handleApproveImage() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('imagelist')
		ss.innerHTML = '';
		var str = searchReq.responseText;
		ss.innerHTML += str;
	}
}

function removeImage(imageid) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
			searchReq.open("GET", 'deleteimage.php?image=' + imageid, true);
			searchReq.onreadystatechange = handleRemoveImage; 
			searchReq.send(null);
	}		
}

function handleRemoveImage() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('imagelist')
		ss.innerHTML = '';
		var str = searchReq.responseText;
		ss.innerHTML += str;
	}
}

//Gets ports depending on users country choice.
function sumbitPortReview2() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		//store form elements in variables
		var portname = escape(document.getElementById('portname').value);
		var shipid = escape(document.getElementById('ships').value);
		var porttext = escape(document.getElementById('porttext').value);
		var bestbar = escape(document.getElementById('bestbar').value);
		var bestrestaurant = escape(document.getElementById('bestrestaurant').value);
		var bestsight = escape(document.getElementById('bestsight').value);
		var bestthing = escape(document.getElementById('bestthing').value);
		var avoid = escape(document.getElementById('wtavoid').value);
		var username = escape(document.getElementById('username').value);
		var email = escape(document.getElementById('email').value);
		
		if(portname == escape("Please Choose a Country..")){
			document.getElementById('pocerror').innerHTML = "Please complete the current form before attempting to add another review"
		}else{
			var pocadded = document.getElementById('pocadded');
			if(pocadded.innerHTML == ""){
				pocadded.innerHTML = "Ports Added: " + document.getElementById('portname').value;
			}else{
				pocadded.innerHTML += ", " + document.getElementById('portname').value;
			}
			
		//request and handle submit form
			searchReq.open("GET", 'scripts/reviewPortOfCall2.php?ships=' + shipid + '&port=' + portname + '&text=' + porttext + '&bar=' + bestbar + '&restaurant=' + bestrestaurant + '&sight=' + bestsight + '&thing=' + bestthing + '&avoid=' + avoid + '&name=' + username + '&email=' + email, true);
			searchReq.onreadystatechange = handleSumbitPortReview2; 
			searchReq.send(null);
			}
	}		
}

function handleSumbitPortReview2() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('portreview')
		ss.innerHTML = '';
		var str = searchReq.responseText;
		ss.innerHTML += str;
	}
}