/**
 * Jquery Plugins * Codes
 *
 * Version: 0.1
 * Updated: 2011-10-19
 * Author: 78e1cbcf185f1931855574403132a177
 *
 * Copyright (c) 2011 CheersBye.com
 *
 * These codes is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License
 * http://creativecommons.org/licenses/by-nc-nd/3.0/
 **/


this.toolTip = function(obj,newobj){	
	xOffset = 0;
	yOffset = 20;		
	$(obj).hover(function(e){											  
		this.t = this.title;
		this.title = "";									  
		$("body").append("<div class='"+newobj+"'><p>"+ this.t +"</p></div>");
		$("."+newobj)
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px")
			.css("z-index", '99999')
			.css("opacity", 0.8)
			.fadeIn(200);
    },
	function(){
		this.title = this.t;		
		$("."+newobj).fadeOut(100).remove();
    });	
	$(obj).mousemove(function(e){
		$("."+newobj)
			.css("top",(e.pageY - xOffset) + "px")
			.css("left",(e.pageX + yOffset) + "px");
	});			
};

function ajax_request(obj, url, type, baseUrl) {
	var ajax_load = "";
	switch (type) {
	case "1":
		ajax_load = '<p><img src="' + baseUrl + '/public/img/ajax-loader-fb.gif" /></p>';
		break;
	case "2":
		ajax_load = '<p><img src="' + baseUrl + '/public/img/ajax-loader-maze.gif" /></p>';
		break;
	case "3":
		ajax_load = '<p><img src="' + baseUrl + '/public/img/ajax-loader-bar.gif" /></p>';
		break;
	}
	url = url.split("?");
	$(obj).html(ajax_load).load(url[0], url[1] + "&sid=" + Math.random());
	var tit = $(obj).attr('title');
	var dv = $('<div>').html(tit).addClass('title');
	dv.appendTo(obj)
}
var imgWidth;
var imgheight;

$(document).keyup(function (e) {
	if (e.which == 13) {}
	if (e.which == 27) {
		$("#txtSearch").parent().find(".slideMsg").slideUp("fast");
	}
});
$.fn.clearForm = function () {
	return this.each(function () {
		var type = this.type,
			tag = this.tagName.toLowerCase();
		if (tag == 'form') return $(':input', this).clearForm();
		if (type == 'text' || type == 'password' || tag == 'textarea') this.value = '';
		else if (type == 'checkbox' || type == 'radio') this.checked = false;
		else if (tag == 'select') this.selectedIndex = -1;
	});
};

function changeList(cat, obj) {
	if (cat == "from") {
		if ($('#' + obj).val() != "") {
			var url = baseUrl + "public/request.php";
			var frmVal = $('#' + obj).val().split("#");
			var params = "dynCityLoad=1&srv=" + grp + "&frmVal=" + $('#' + obj).val() + "&sid=" + Math.random();
			$.ajax({
				type: "POST",
				url: url,
				data: params,
				cache: false,
				beforeSend: function () {
					$("#ddToList").hide();
					$("#listLoader").show();
				},
				error: function () {
					alert("Error in fetching information");
				},
				complete: function (data) {
					if (data.responseText != 0) {
						$("#ddToList").html("").append(data.responseText);
						$("#listLoader").hide();
						$("#ddToList").show();
					}
				}
			});
		} else {
			$("#ddToList").html("").append('<option value="">Going To</option>');
			return false;
		}
	}
	if (cat == "to") {
		if ($('#' + obj).val() != "") {
			if (grp == 9) {
				jumpTo(baseUrl + "services/view/" + grp + "/F/" + $("#ddFromList").val() + "/" + $("#ddToList").val());
			}
			if (grp == 10) {
				jumpTo(baseUrl + "services/view/" + grp + "/B/" + $("#ddFromList").val() + "/" + $("#ddToList").val());
			}
			return false;
		} else {
			return false;
		}
	}
}

function doCustomSearch() {
	var url = baseUrl + "public/request.php";
	var cat = ($('#ddCusSerCategory').val()) ? $('#ddCusSerCategory').val() : "_";
	var area = ($('#ddCusSerArea').val()) ? $('#ddCusSerArea').val().replace(/ /g, '-') : "_";
	var star = ($('#ddCusSerStarRate').val()) ? $('#ddCusSerStarRate').val() : "_";
	var col = ($('#ddCusSerCollection').val()) ? $('#ddCusSerCollection').val().replace(/ /g, '-') : "_";
	var params = "dynCusSer=1&serv=" + grp + "&type=" + $("#txtSearch_Cat").val() + "&id=" + $("#txtSearch_Id").val() + "&cat=" + cat + "&area=" + area + "&star=" + star + "&col=" + col + "&sid=" + Math.random();
	$.ajax({
		type: "POST",
		url: url,
		data: params,
		cache: false,
		beforeSend: function () {},
		complete: function (data) {
			if (data.responseText != 0) {
				var result = data.responseText.split("###");
				$("#fluidFrame").attr({
					"src": result[0]
				});
				changeScreen('service', 'fluidFrame');
				$("#accordion3").html(result[1]);
			}
		},
		error: function (xhr, ajaxOptions, thrownError) {
			alert("Error in fetching information");
		}
	});
}

function chngBookReq(id, name, det) {
	$("div.bookBox .info .name").html(name);
	$("div.bookBox .info #txtProp").val(id);
	$("div.bookBox .info #txtPropDet").val(det);
}

function checkText(obj, type) {
	var hVal = "";
	var dVal = "";
	switch (type) {
	case "1":
		hVal = "First Name";
		dVal = "";
		break;
	case "2":
		hVal = "Surname";
		dVal = "";
		break;
	case "3":
		hVal = "Lastname";
		dVal = "";
		break;
	case "4":
		hVal = "Check-In";
		dVal = "";
		break;
	case "5":
		hVal = "Check-Out";
		dVal = "";
		break;
	case "6":
		hVal = "E-mail";
		dVal = "";
		break;
	case "7":
		hVal = "Mobile (Optional)";
		dVal = "";
		break;
	case "8":
		hVal = "Type above text";
		dVal = "";
		break;
	}
	if ($("#" + obj).val() == hVal) {
		$("#" + obj).val(dVal).addClass("textEnabled");
	} else {
		if ($("#" + obj).val() == "" || $("#" + obj).val() == hVal || $("#" + obj).val() == dVal) {
			$("#" + obj).val(hVal).removeClass("textEnabled");
		} else {
			$("#" + obj).removeClass("errorField");

		}
	}
}

function clear_form_elements(obj) {
	$("." + obj).find(':input').not(':button, :submit, :reset, :hidden').each(function () {
		switch (this.type) {
		case 'password':
		case 'select-multiple':
		case 'select-one':
		case 'text':
		case 'textarea':
			$(this).val('');
			break;
		case 'checkbox':
		case 'radio':
			this.checked = false;
			break;
		}
	});
}

function dateRange(input) {
	var from = input.id.replace(/out/ig, "in");
	var to = input.id;
	var frmDt = $("#" + from).datepicker('getDate');
	var toDt = new Date(frmDt.getFullYear(), frmDt.getMonth() + 1, frmDt.getDate());
	var dateMin = frmDt;
	var dateMax = toDt;
	return {
		minDate: dateMin,
		maxDate: dateMax
	};
}

function setToDate(date) {
	var dt = new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
	return dt;
}

function loadCities(obj, des, param, def) {
	if ($('#' + obj).val() != "") {
		var url = baseUrl + "public/request.php";
		var params = param + "&sid=" + Math.random();
		$.ajax({
			type: "POST",
			url: url,
			data: params,
			cache: false,
			beforeSend: function () {},
			error: function () {
				alert("Error in fetching information");
			},
			complete: function (data) {
				if (data.responseText != 0) {
					$("#" + des).html(def).append(data.responseText);
				}
			}
		});
	}
}

function showHideObj(obj1, obj2) {
	$('#' + obj1).css({
		'display': ''
	}).val("");
	$('#' + obj1).css({
		'display': 'none'
	}).val("");
}

function genRandImg(obj) {
	$.ajax({
		type: "POST",
		url: baseUrl + "public/request.php",
		data: "cpimg=1&sid=" + Math.random(),
		complete: function (data) {
			$("#" + obj).attr({
				"src": baseUrl + "public/request.php?cpimg=1&sid=" + Math.random()
			});
			$("#txtBkReqCpt").val("Type above text");
		}
	});
}

function changeFrameLoc(obj,url){
	$('#' + obj).attr('src', url);
}

function changeLayout(obj){
	var scrnW, scrnH, scrlW, scrlH, ofstW, ofstH, ftrW, ftrH;
	var hdrOfstW,hdrOfstH,hdrClntW,hdrClntH;
	var shdrOfstW,shdrOfstH,shdrClntW,shdrClntH;
	var leftW,leftH;
	var browser = $.browser.browser();
	
	scrnW = screen.availWidth;
	scrnH = screen.availHeight;
	scrlW = parseInt($("body").css("width"));
	scrlH = parseInt($("body").css("height"));
	hdrOfstW = parseInt($(".header").css("width"));
	hdrOfstH = parseInt($(".header").css("height"));
	shdrOfstW = parseInt($(".subHeader").css("width"));
	shdrOfstH = parseInt($(".subHeader").css("height"));
	leftW = parseInt($(".leftColumn").css("width"));
	leftH = parseInt($(".leftColumn").css("height"));
	ftrW = parseInt($(".footersml").css("width"));
	ftrH = parseInt($(".footersml").css("height"));
	
	shdrOfstH = (isNaN(shdrOfstH))?50:shdrOfstH;
	
	var h=0, w=0;
	if($(".subHeader").length==0){
		h = (scrlH>=500)?(scrlH - (hdrOfstH + shdrOfstH + ftrH) + 16):(500 - (hdrOfstH + shdrOfstH + ftrH) + 16);
		w = (scrlW>=1015)?(scrlW - leftW):(1015 - leftW);
	}else{
		h = (scrlH>=500)?(scrlH - (hdrOfstH + shdrOfstH + ftrH + 34)):(500 - (hdrOfstH + shdrOfstH + ftrH + 34));
		w = (scrlW>=1015)?(scrlW - leftW):(1015 - leftW);
	}
	
	switch(browser){
		case "AOL Explorer":
		case "Camino":
		case "Firefox":
		case "Flock":
		case "iCab":
		case "Konqueror":
		case "Mozilla":
		case "Netscape":
		case "Internet Explorer":
		case "Safari":
			h=h;
			w=w;
			break;
		case "Opera":
			h=w-20;
			w=w;
			break;
	}
	
	$('.pageContent').css('min-height', h + 'px');
	$('.leftColumn').css('height', h + 'px');
	$('div#navList').css('height', h + 'px');
	$('div.prodList').css('height', h + 'px');
	$('.rightColumn').css('height', (h + 27) + 'px');
	$('.rightBox').css('height', (h + 27) + 'px');
	$('#' + obj).css('height', (h + 27) + 'px');
	if($(".subHeader").length==1){
		$('.leftColumn').css('height', h + 'px').css('margin-top', (shdrOfstH - 49) + 'px');
		if(browser!="Internet Explorer"){
			$('.rightColumn').css('height', (h + 27) + 'px').css('margin-top', shdrOfstH + 'px');
			$('.rightBox').css('height', (h + 27) + 'px').css('margin-top', shdrOfstH + 'px');
			$('#' + obj).css('height', (h + 27) + 'px').css('margin-top', (shdrOfstH - 49) + 'px');
		}
	}
	/*var msg = "Browser = " + browser + "<br />";
	msg = msg + "Screen = " + scrnW + "x" + scrnH + "<br />";
	msg = msg + "Body = " + scrlW + "x" + scrlH + "<br />";
	msg = msg + "Header = " + hdrOfstW + "x" + hdrOfstH + "<br />";
	msg = msg + "SubHeader = " + shdrOfstW  + "x" + shdrOfstH + "<br />";
	msg = msg + "LeftColumn = " + leftW + "x" + leftH + "<br />";
	msg = msg + "Footer = " +  ftrW + "x" + ftrH + "<br />";
	msg = msg + "HeightRemoved = " + (hdrOfstH + shdrOfstH + ftrH) + "<br />";
	msg = msg + "Current = " + w + "x" + h + "<br />";
	msg = msg + "IFrame = " + parseInt($('#' + obj).css("width")) + "x" + parseInt($('#' + obj).css("height"));
	if($('.trace').css('display')){
		$('.trace').html(msg);
	}*/
}

var bkReqUnique="";
$(document).ready(function () {
	if(pageView==2){
		changeLayout('fluidFrame');
	}
	$(window).resize(function() {
		if(pageView==2){
			changeLayout('fluidFrame');
		}
	});
	
	toolTip(".headTip", "toolTipA");
	
	$("#txtSearch").focus(function () {
		if ($(this).val() == $(this).attr("title")) $(this).val("");
	}).blur(function () {
		if ($(this).val() == "") $(this).val($(this).attr("title"));
	}).keypress(function (e) {
		if (e.which == 13) {
			$("#txtSearch_Cat").val("");
			$("#txtSearch_Id").val("");
		}
	});
	
	$("#txtSearch").autocomplete(baseUrl + "public/search.php", {
		width: 394,
		minChars: 1,
		selectFirst: true,
		extraParams: {
			sn: grp
		}
	}).result(function (event, data, formatted, input) {
		if (data) {
			var searchText = data[0].replace('<br>', ',');
			searchText = searchText.substring(0,searchText.indexOf('<em>'));
			$("#" + input.id).val(searchText);
			$("#" + input.id + "_Cat").attr("autocomplete", "off").val(data[1]);
			$("#" + input.id + "_Id").attr("autocomplete", "off").val(data[2]);
			window.top.location = baseUrl + 'services/view/' + data[3];
		}
	});
	
	$("#txtSearch").focus(function(){
		$(this).parent().find(".slideMsg").slideDown("fast");
	}).blur(function(){
		$(this).parent().find(".slideMsg").slideUp("fast");
	});

	$('div.footersml div.footlinks > div').each(function (idx) {}).hover(function () {
		$("ul", this).addClass("dispNow").fadeIn("slow");
	}, function () {
		jQuery("ul", this).fadeOut("fast");
	});
	
	$("#ddFromList").change(function () {
		changeList('from', $(this).attr('id'))
	});
	$("#ddToList").change(function () {
		changeList('to', $(this).attr('id'))
	});
	$(".cusSearch div.ctrls:last-child").addClass("ctrlsLast");
	if (pageView == 2) {
		$(function () {
			$('#txtBkReqChkin').datepicker({
				showOtherMonths: true,
				selectOtherMonths: true,
				dateFormat: 'dd/mm/yy',
				minDate: '+0D',
				maxDate: '+1Y',
				numberOfMonths: 2,
				align: 'Bl',
				onSelect: function (dateText, inst) {
					$('#txtBkReqChkout').val("");
					$('#txtBkReqChkout').datepicker("setDate", setToDate($(this).datepicker('getDate')));
				}
			});
			$('#txtBkReqChkin, #txtBkReqChkout').datepicker({
				showOtherMonths: true,
				selectOtherMonths: true,
				dateFormat: 'dd/mm/yy',
				numberOfMonths: 2,
				beforeShow: dateRange,
				changeFirstDay: false
			});
		});
	}
	
	$('#btnBkReqSend').click(function () {
		var errors = 0;
		var result;
		var errorMsg = new Array();
		if ($('#txtBkReqFname').val() == '' || $('#txtBkReqFname').val() == 'First Name') {
			errors++;
			errorMsg[errors] = errors + ". Please enter your First Name";
			$('#txtBkReqFname').addClass('errorField');
		} else {
			$('#txtBkReqFname').removeClass('errorField');
		}
		if ($('#ddBkReqRooms').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please select the number of Rooms required";
			$('#ddBkReqRooms').addClass('errorField');
		} else {
			$('#ddBkReqRooms').removeClass('errorField');
		}
		if ($('#ddBkReqAdlt').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please select the number of Adults";
			$('#ddBkReqAdlt').addClass('errorField');
		} else {
			$('#ddBkReqAdlt').removeClass('errorField');
		}
		if ($('#txtBkReqChkin').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please update the Check In date";
			$('#txtBkReqChkin').addClass('errorField');
		} else {
			$('#txtBkReqChkin').removeClass('errorField');
		}
		if ($('#txtBkReqChkout').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please update the Check Out date";
			$('#txtBkReqChkout').addClass('errorField');
		} else {
			$('#txtBkReqChkout').removeClass('errorField');
		}
		if ($('#ddBkReqCountry').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please select your Country";
			$('#ddBkReqCountry').addClass('errorField');
		} else {
			$('#ddBkReqCountry').removeClass('errorField');
		}
		if ($('#ddBkReqCity').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please select your City";
			$('#ddBkReqCity').addClass('errorField');
		} else {
			$('#ddBkReqCity').removeClass('errorField');
		}
		if ($('#txtBkReqEmail').val() == '' || $('#txtBkReqEmail').val() == 'E-mail') {
			errors++;
			errorMsg[errors] = errors + ". Please enter your Email address";
			$('#txtBkReqEmail').addClass('errorField');
		} else {
			var pattern = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
			if (pattern.test($('#txtBkReqEmail').val())) {
				$('#txtBkReqEmail').removeClass('errorField');
			} else {
				errors++;
				errorMsg[errors] = errors + ". Please enter a valid Email address";
				$('#txtBkReqEmail').addClass('errorField');
			}
		}
		if ($('#txtBkReqMobile').val() != '' && $('#txtBkReqMobile').val() != 'Mobile (Optional)' && ($('#txtBkReqMobile').val()).length < 10) {
			errors++;
			errorMsg[errors] = errors + ". Please enter a valid mobile number";
			$('#txtBkReqMobile').addClass('errorField');
		} else {
			$('#txtBkReqMobile').removeClass('errorField');
		}
		if (errors > 0) {
			alert("Please fix the following error(s) and resubmit:\r\n" + errorMsg.join("\r\n"));
			$('.ctrls input.text, .info input.text, .ctrls select').attr('disabled', false);
		} else {
			var ctrls = '.ctrls input.text, .info input.text, .ctrls select, .button input.but';
			$.ajax({
				type: "POST",
				url: baseUrl + 'public/requests.php',
				data: $("#frmBkReq").serialize() + "&bkReqUnique="+bkReqUnique+"&sid=" + Math.random(),
				cache: false,
				beforeSend: function () {
					$(ctrls).attr('disabled', true);
					$("div.bookBoxOver").fadeIn("100");
				},
				error: function () {
					alert("Error in sending request");
				},
				complete: function (data, status) {
					if (data.readyState == 4 && data.status == 200) {
						if (data.responseText == "success") {
							alert("Your booking request has been sent successfully.\r\nPlease check your email.");
						} else if (data.responseText == "failed") {
							alert("Your booking request cannot be complete at the moment.\r\nPlease contact \"nocommission@cheersbye.com\".");
						} else if (data.responseText == "failed2") {
							alert("Your have already sent the booking request for this information.\r\nPlease change your information and try again.\r\nOr please contact \"nocommission@cheersbye.com\".");
						} else {
							alert("Oops. Something went wrong, we are looking on it. Please try again later.\r\nOr please contact \"nocommission@cheersbye.com\".");
						}
						$(ctrls).attr('disabled', false);
						$("div.bookBoxOver").hide();
					}
				}
			});
		}
		return false;
	});
	
	$('#butContSubmit').click(function () {
		var errors = 0;
		var errorMsg = new Array();
		if ($('#txtContName').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please enter your Name";
			$('#txtContName').addClass('errorField');
		} else {
			$('#txtContName').removeClass('errorField');
		}
		if ($('#txtContMail').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please enter your Email address";
			$('#txtContMail').addClass('errorField');
		} else {
			var pattern = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
			if (pattern.test($('#txtContMail').val())) {
				$('#txtContMail').removeClass('errorField');
			} else {
				errors++;
				errorMsg[errors] = errors + ". Please enter a valid Email address";
				$('#txtContMail').addClass('errorField');
			}
		}
		if ($('#txtContPhone').val() == '') {
			errors++;
			errorMsg[errors] = errors + ". Please enter valid Phone No. \r\n(eg: +91 9465545464)";
			$('#txtContPhone').addClass('errorField');
		} else {
			$('#txtContPhone').removeClass('errorField');
		}
		
		if (errors > 0) {
			alert("Please fix the following error(s) and resubmit:\r\n" + errorMsg.join("\r\n"));
			$('div.contact fieldset.contactForm ul li span.input input, div.contact fieldset.contactForm ul li span.input textarea').attr('disabled', false);
		} else {
			var params='sendContInfo='+$('#sendContInfo').val()+'&txtContName='+$('#txtContName').val()+'&txtContMail='+$('#txtContMail').val()+'&txtContPhone='+$('#txtContPhone').val()+'&txtContMsg='+$('#txtContMsg').val();
			$.ajax({
				type: "POST",
				url: baseUrl + "public/request2.php",
				data: params + "&sid=" + Math.random(),
				cache: false,
				beforeSend: function () {
					$('div.contact fieldset.contactForm ul li span.input input, div.contact fieldset.contactForm ul li span.input textarea').attr('disabled', 'true');
					$("div.conBoxOver").fadeIn("100");
				},
				error: function () {
					alert("Error in sending request");
					$("div.conBoxOver").hide();
					$('div.contact fieldset.contactForm ul li span.input input, div.contact fieldset.contactForm ul li span.input textarea').attr('disabled', '');
				},
				complete: function (data, status) {
					if (data.readyState == 4 && data.status == 200) {
						if (data.responseText == "success") {
							alert("Your request has been sent successfully.\r\nPlease check your email.");
						} else if (data.responseText == "failed") {
							alert("Your request cannot be complete at the moment.\r\nPlease contact \"support@cheersbye.com\".");
						} else if (data.responseText == "failed2") {
							alert("Your have already sent the request for this information.\r\nPlease change your information and try again.\r\nOr please contact \"support@cheersbye.com\".");
						} else {
							alert("Oops. Something went wrong, we are looking on it. Please try again later.\r\nOr please contact \"support@cheersbye.com\".");
						}
						$("div.conBoxOver").hide();
						$('div.contact fieldset.contactForm ul li span.input input, div.contact fieldset.contactForm ul li span.input textarea').attr('disabled', '');
					}
				}
			});
		}
		return false;
	});
	
});
