//::DateDiff Function
//ex.	 DateDiff("d", "1/1/2000", "1/31/2000");
function DateDiff(strInterval,strDate1,strDate2) {
	var dt0 = "";
	var dt1 = new Date(Date.parse(strDate1));
	var dt2 = new Date(Date.parse(strDate2));
	switch (strInterval) {
		case "y":
			dt0 = 1000*60*60*24*365;
			break;
		case "m":
			dt0 = 1000*60*60*24*30;
			break;
		case "w":
			dt0 = 1000*60*60*24*7;
			break;
		case "h":
			dt0 = 1000*60*60*24;
			break;
		case "n":
			dt0 = 1000*60;
			break;
		case "s":
			dt0 = 1000;
			break;
		default: //d
			dt0 = 1000*60*60*24;
			break;
	}
	return parseInt(parseInt(dt2.getTime()-dt1.getTime())/(dt0));
}


//::Format Number Function
//ex.	 FormatNumber(1234,2,1,false,true);
function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas) {
    if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum  = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;

	var tmpNumStr = new String(tmpNum);
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);

	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," +
				        tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}
	}

	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	if (tmpNumStr.indexOf(".") == -1 && decimalNum > 0) {
		tmpNumStr += ".";
	}

	if (decimalNum > 0) {
		for (iDec = 0; iDec < decimalNum; iDec++) {
			tmpNumStr += "0";
		}
	}

	return tmpNumStr.substring(0,tmpNumStr.indexOf(".") + 1 + decimalNum);
}


//::Trim String Function
function Trim(str){
	str = str.replace(/\s+/,'');
	str = str.replace(/\s+$/,'');
	return str;
}

//::IsNumeric Function
function IsNumeric(val){
	if (val != "") {
		for (i=0; i<val.length; i++){
			if (isNaN(val.charAt(i)) &&
			   (val.charAt(i) != "," &&
				val.charAt(i) != ".")){
				return false;
			}
		}
	}
	else {
		return false;
	}
	return true;
}

//::Valid E-Mail
function ValidEmail(str){
	SpcPos = str.indexOf(' ');
	AccPos = str.indexOf('@');
	AccStr = str.substr(0,AccPos);
	AccLen = AccStr.length;
	DomPos = str.lastIndexOf('.');
	DomStr = str.substr(AccPos+1,(DomPos-AccPos)-1);
	DomLen = DomStr.length;
	ExtPos = DomPos + 1;
	ExtLen = str.length - ExtPos;
	ExtStr = str.substr(ExtPos,ExtLen);
	if(	   (SpcPos == -1)
		&& (AccPos != -1)
		&& (DomPos != -1)
		&& (AccLen >= 2)
		&& (DomLen >= 2)
		&& (ExtLen >= 2)
		&& (ExtLen <= 4)){
		return true;
	}
	else{return false}
}

//::Valid Telephone
function ValidTelephone(str){
	str = Trim(str);
	str = str.replace("(","");
	str = str.replace(")","");
	str = str.replace(".","");
	str = str.replace(".","");
	str = str.replace("-","");
	str = str.replace("-","");
	str = str.replace(" ","");
	strLen = str.length;
	if((strLen == 10 || strLen == 7) && IsNumeric(str)){
		return true;
	}
	else{
		return false;
	}
}


//::check if radio or checkbox items are selected
function CheckSelected(arr){
	if(arr.length > 0){
		for(var index = 0; index < arr.length; index++){
			if(arr[index].checked){
				return true;
				break;
			}
		}
	}
	else{
		if(arr.checked){
			return true;
		}
		else{
			return false;
		}
	}
	return false;
}


//::Check All Function
//ex.	onClick="CheckAll(document.forms[0].chkFields);"
var checkflag = "false";
function CheckAll(field){
	if (typeof field != "undefined") {
		if(field.length == null){
			if (checkflag == "false") {
				field.checked = true;
				checkflag = "true";
			}
			else{
				field.checked = false;
				checkflag = "false";
			}
		}
		else{
			if (checkflag == "false") {
				for (i = 0; i < field.length; i++){
				field[i].checked = true;}
				checkflag = "true";
			}
			else{
				for (i = 0; i < field.length; i++){
				field[i].checked = false; }
				checkflag = "false";
			}
		}
	}
}


//::Detect Cookies Function
function DetectCookies() {
	var objTmpCookie = new Date();
	strTmpCookie = (objTmpCookie.getTime() + "");
	document.cookie = "TmpCookie=" + strTmpCookie + "; path=/";
	if (document.cookie.indexOf(strTmpCookie,0) < 0) {
		return false;
	}
	else {
		return true;
	}
}


//::Detect Cookies
function DetectCookiesMessage() {
	if (!DetectCookies()) {
		strCookieMsg = 'ERROR: Your browser currently has cookies disabled.<br /><br />' +
		               '&nbsp; &nbsp; &nbsp; Please enable your cookies to use our reservation system.<br />' +
		               '&nbsp; &nbsp; &nbsp; <a href="http://www.google.com/support/websearch/bin/answer.py?hl=en&answer=35851" target="_blank">'+
			           'Click Here for Instructions...</a>';
		DisplayBlock('html','Ico_Error.png',strCookieMsg,'',0);
	}
}


//::Price Check Function
function PriceCheck() {
	if (!IsNumeric($j('#total').val())) {
		strMsg = 'The total price is <u>not</u> valid.' +
				 '<br />&nbsp; &nbsp; &nbsp; Please <a href="contact.asp?attn=technical&body=Invalid Total Price">contact us</a> for further assistance.</span>';
		DisplayBlock('#step4','Ico_Error.png',strMsg,'',4);
		return false;
	}
}


//::jQuery blockUI Settings
function BlockUISettings() {
	$j.blockUI.defaults.overlayCSS.backgroundColor = '#000';
	$j.blockUI.defaults.overlayCSS.opacity         = .2;
	$j.blockUI.defaults.overlayCSS.cursor          = 'not-allowed';
}


//::Display BlockUI Function
function DisplayBlock(strID,strIcon,strMessage,strDetails,intSecs) {
	if (strDetails != '') {
		strDetails = '<ul class="List2">' + strDetails + '</ul>';
	}
	if (strID == 'body' || strID == 'html') {
		objBlock = $j.blockUI;
		strWidth = '500px';
	}
	else {
		objBlock = $j(strID).block;
		strWidth = '65%';
	}
	strMsg = '<span style="font-weight:bold;"><img src="images/' + strIcon +
		     '" align="absmiddle">&nbsp;&nbsp;' + strMessage + '</span>' + strDetails;
	strCss = {
				cursor:  'not-allowed',
				border:  '2px solid #808080',
				padding: '5px',
				width:   strWidth,
				'-webkit-border-radius': '10px',
				'-moz-border-radius':    '10px',
				'text-align':            'left'
			 };
	if (strID == 'body' || strID == 'html') {
		$j.blockUI({
			message: strMsg,
			css: strCss
		});
	}
	else {
		$j(strID).block({
			message: strMsg,
			css: strCss
		});
	}
	if (intSecs > 0) {
		$j('.blockOverlay').attr('title','Click to Unblock...');
		$j('.blockOverlay').bind('click',function(){
			$j(strID).unblock();
		});

		setTimeout(function(){
			$j(strID).unblock();
		},intSecs*1000);
	}
}


//::Customer Edit Function
function CustEdit(strID) {
	Lightview.show({
		href: 'win_renter.asp?id=' + strID,
		rel: 'iframe',
		title: 'Update Renter Information',
		caption: '',
		options: {
			width: 625,
			height: 245,
			autosize: true,
			menubar: false,
			topclose: true,
			overlayclose: true
		}
	});
}


//::Cart Edit Function
function CartEdit(intID) {
	document.location.href = 'reservations.asp?cid=' + intID;
}


//::Cart Delete Function
function CartDel(intID) {
	strMsg = 'Are you sure you want to remove this item from your shopping cart?';
	if (confirm(strMsg)) {
		$j('#cr'+intID+'a').fadeOut();
		$j('#cr'+intID+'b').fadeOut();
		$j('#cr'+intID+'c').fadeOut();
		$j.cookie('Cart'+intID, null);
		CartCalc(intID);
	}
}


//::Cart Calculate Function
function CartCalc(intID) {
	var strPath      = window.location.pathname.toLowerCase();
	var strPage      = strPath.substring(strPath.lastIndexOf('/') + 1);
	var intItemTotal = parseFloat($j('#ct'+intID).html().replace('$',''));
	var intCartTotal = parseFloat($j('#cart_subtotal_val').html().replace('$',''));
	var intSubTotal  = FormatNumber(intCartTotal - intItemTotal,2,0,false,true);

	if (intSubTotal == '$0.00') {
		document.location.href = 'products.asp';
	}
	else {
		$j('#cart_subtotal_val').html(intSubTotal);
	}

	if (strPage == 'reservations_checkout.asp') {
		$j('#cart_button').removeClass('Btn1').addClass('Btn3').text('Update Checkout Page');
	}
}


//::Toggle Agency Fields
function ToggleAgency() {
	if ($j('#agency:checked').val() != null) {
		for (i=1; i<=11; i++) {
			$j('#ar'+i).show();
		}
	}
	else {
		for (i=1; i<=11; i++) {
			$j('#ar'+i).hide();
		}
	}
}


//::Checkout Calculate Function
function CheckoutCalc() {
	var intDWUnit = parseFloat($j('#dwunit').val());
	var intDWChkT = $j('input:checkbox[name=dw]').length;
	var intDWChkC = $j('input:checkbox[name=dw]:checked').length;
	var intDamage = 0;
	var intGTotal = 0;

	if (intDWChkC > 0) {
		intDamage = parseFloat(intDWChkC * intDWUnit);
		intGTotal = parseFloat($j('#grandtotal').val().replace(',','')) + intDamage;
	}
	else {
		intDamage = parseFloat(intDWChkT * intDWUnit);
		intGTotal = parseFloat($j('#grandtotal').val().replace(',','')) - intDamage;
		intDamage = 0;
	}

	var strDamage = '$' + FormatNumber(intDamage,2,1,false,true);
	var strGTotal = '$' + FormatNumber(intGTotal,2,1,false,true);

	$j('#sdamage').text(strDamage);
	$j('#grandtotal').val(intGTotal);
	$j('#sgrandtotal').text(strGTotal);
}


//::Scroll Window (jQuery)
function ScrollWin(strID){
	$j("html, body").animate({
		scrollTop: $j(strID).offset().top
	}, 2000);
}


