/* ------------------------------------------------------------------------------------------ */
/* Image Pre Loading */
/*preload_logo = new Image(250,40);
preload_logo.src="/img/viewrentalonline_logo.gif"*/
preload_hdr = new Image(48,9);
preload_hdr.src="/img/gradients/hdr_blue.gif";
preload_image1 = new Image(20,45); 
preload_image1.src="/img/gradients/nav_bg.gif";
preload_image2 = new Image(20,28); 
preload_image2.src="/img/gradients/ftr_lightgrey.gif";
preload_image3 = new Image(160,1);
preload_image3.src="/img/gradients/dashboard_bg.gif";
preload_image4 = new Image(21,21);
preload_image4.src="/img/corners/hdr_options_left.gif";
preload_image5 = new Image(8,8);
preload_image5.src="/img/corners/endcap_left.gif";
preload_image6 = new Image(8,8);
preload_image6.src="/img/corners/endcap_right.gif";
preload_image7 = new Image(8,8);
preload_image7.src="/img/corners/endcap_filler.gif";

// Slide Vars
var timerlen = 5;
var slideAniLen = 500;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

/* ------------------------------------------------------------------------------------------ */
/* Function to clear login if needed */
function clearLogin() {

	if (document.getElementById('username').value != '' || document.getElementById('password').value != '') {
	
		document.getElementById('username_txt').style.visibility='hidden';
		document.getElementById('pass_txt').style.visibility='hidden';
		
	} else {
		
		document.getElementById('username_txt').style.visibility='visible';
		document.getElementById('pass_txt').style.visibility='visible';
		
	}
}

/* ------------------------------------------------------------------------------------------ */
/* Function to copy text to clipboard */
function copyLink(id) {
	document.getElementById("linkField_" + id + "").focus();
	document.getElementById("linkField_" + id + "").select();

	/*var txt = '';
	if (window.getSelection) {
		txt = window.getSelection();
	} else if (document.getSelection) {
		txt = document.getSelection();
	} else if (document.selection) {
		txt = document.selection.createRange().text;
	} else 
		return;
		alert(txt);document.aform.selectedtext.value = txt;*/
}


/* ------------------------------------------------------------------------------------------ */
/* Function to auto clear input field */
function clearInput(id, default_txt) {
	if (document.getElementById(id).value == default_txt) {
		document.getElementById(id).value="";
	}
}

/* Function to auto refill field */
function refillInput(id, default_txt) {
	if (document.getElementById(id).value == "") {
		document.getElementById(id).value=default_txt;
	}
}

/* -- Function to toggle Tooltip ------------------------------------------------------------ */
function toggleTip(id, status) {
	switch (status) {
		case "1":
			$("#tooltip_" + id + "").fadeIn("slow");
			break;
		case "0":
			$("#tooltip_" + id + "").fadeOut("slow");
			break;
	}
}

/* -- Function to Fade ID in ---------------------------------------------------------------- */
function tFadeIn(objId,type) {
	obj = document.getElementById(type + "_" + objId);
	$("#" + type + "_" + objId + "").fadeIn("slow");
}

/* -- Function to Fade ID out ---------------------------------------------------------------- */
function tFadeOut(objId,type) {
	obj = document.getElementById(type + "_" + objId);
	$("#" + type + "_" + objId + "").fadeOut("fast");
}

/* -- Function to Set Opacity --------------------------------------------------------------- */
function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
	
	// IE/Win
	obj.style.filter = "alpha(opacity:"+opacity+")";
	
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

/* -- Function to set field background to none ---------------------------------------------- */
function clearFieldBackground(id) {
	if (document.getElementById(id).value != "") {
		document.getElementById(id).style.background='none';
	}
} 

/* -- Function to hide the error message box ------------------------------------------------- */
function hideError() {
	document.getElementById('overlay').style.display='none';
	document.getElementById('err_msg_txt').innerHTML = '';
	document.getElementById('err_box').style.display='none';
}


/* -- Function to enabled selected field(s) ------------------------------------------------- */
function enableField(id_array,chkbox) {
	
	ids = id_array.split(','); 
	
	if (document.getElementById(chkbox).checked == true) {
	
		for (var i = 0; i < ids.length; i++) {
			document.getElementById(ids[i]).disabled = false;
		}
	} else {
	
		for (var i = 0; i < ids.length; i++) {
			document.getElementById(ids[i]).value = "0.00";
			document.getElementById(ids[i]).disabled = true;
		}
	}
}

/* -- Function to show a sheet dialog ------------------------------------------------------- */
function showSheet(sheet,tab,action,sheetHeight,id,where) {
	
	document.getElementById(sheet).style.display='block'; 								// Display #sheet
	
	var winWidth = Number(document.body.offsetWidth-200);								// Get Width of window (subtract 200px)
	var sheetWidth = document.getElementById(sheet).clientWidth;						// Get Width of #sheet
	var sheetWidthHalf = Number(sheetWidth/2);											// Devide #sheet with by 2
	var winWidthHalf = Number(winWidth/2);												// Devide window width by 2
	var newLeft = Math.round(winWidthHalf - sheetWidthHalf);							// Get the new left in pixels
	
	document.getElementById(sheet).style.left = newLeft + "px";							// Center #sheet inside #dashboard_content
	document.getElementById(sheet).style.height = 1 + "px";								// Shrink #sheet to zero pixels
	
	openSheet(sheet,1,sheetHeight,0);
	loadSheetElements(tab,action,id);
}

/* -- Function to open a sheet dialog ------------------------------------------------------- */
function openSheet(sheet,currHeight,Height,loading) {

	if (loading == 0) { 
		document.getElementById('sheet_elements').innerHTML = '';
		document.getElementById('sheet_elements').style.display='none'; 
	}
	
	if (document.getElementById) {
	
		if (currHeight <= Height) {
			document.getElementById(sheet).style.height = currHeight + "px";
			currHeight += 20;
      		window.setTimeout("openSheet('sheet',"+currHeight+","+Height+",1)", 1);
      		
      	} else {
      		document.getElementById('sheet_elements').style.display='block';
    	}
  	}
}

/* ------------------------------------------------------------------------------------------ */
/* Function to hide a sheet dialog */
function hideSheet(sheet) {

	var sheetHeight = document.getElementById(sheet).clientHeight;		// Get Height of #sheet
	document.getElementById("sheet_elements").style.display='none'; 	// Hide #sheet_elements
				
	closeSheet(sheet,sheetHeight);

}

/* ------------------------------------------------------------------------------------------ */
/* Function to close a sheet dialog */
function closeSheet(sheet,currHeight) {
	
	if (document.getElementById) {
   		
   		if (currHeight >= 0) {
			document.getElementById(sheet).style.height = currHeight + "px";
			currHeight -= 20;
      		window.setTimeout("closeSheet('sheet',"+currHeight+")", 1);
      		
      		if (currHeight <= 0) {
      			document.getElementById(sheet).style.display='none'; 				// Hide #sheet
      			document.getElementById('sheet_elements').innerHTML = '';
      		}
    	}
  	}
}

/* ------------------------------------------------------------------------------------------ */
/* Function to hide a sheet dialog */
function loadSheetElements(tab,action,id) {
	
	switch (tab) {
		
		// Links
		case "links":
		
			// Actions
			switch (action) {
				case "add":
					loadAjaxForm('links','links','add_edit.php','l_path','add','');
					break;
					
				case "edit":
					loadAjaxForm('links','links','add_edit.php','l_path','edit',id);
					break;
					
			}
			
			break;
			
			
	}
}

/* ------------------------------------------------------------------------------------------ */
/* Function to show Edit/Delete controls */
function showControls(type, id, status) {
	if (document.getElementById(type + '_controls_' + id)) {
		if (status == 1) {
			document.getElementById(type + '_controls_' + id).style.visibility='visible';
			document.getElementById(type + '_' + id).style.background='#f5f8fc';
		} else {
			document.getElementById(type + '_controls_' + id).style.visibility='hidden';
			document.getElementById(type + '_' + id).style.background='#fff';
		}
	}
}

/* ------------------------------------------------------------------------------------------ */
/* Function to select a day from the calendar */
function selDay(day,num_days) {

	for (var i = 1; i <= num_days; i++) {
		if (day != i) {
			document.getElementById('day_' + i).style.background='none';
		}
	}
	
	document.getElementById('day_' + day).style.background='#c7d2e1';
	document.getElementById('date_day').value = day;
}

/* ------------------------------------------------------------------------------------------ */
/* Function to set Date/Time */
function setDateTime(apply_id) {

	var am_pm = document.getElementById('time_am_pm').value;
	var day = document.getElementById('date_day').value;
	var month = document.getElementById('date_month').value;
	var year = document.getElementById('date_year').value;
	
	var hour = document.getElementById('time_hour').value;
	var minute = document.getElementById('time_minute').value;
	
	if (am_pm == "PM") { 
		var t_hour = (Number(hour)+12);
		if (t_hour == 24 && minute == 00) { 
			t_hour = 11;
			t_minute = 59;
		}
	} else { 
		var t_hour = hour; 
		var t_minute = minute;
	}

	document.getElementById('overlay').style.display='none';
	document.getElementById('cal_box').style.display='none';
	document.getElementById(apply_id + '_field').innerHTML = year + "-" + month + "-" + day + " @ " + hour + ":" + minute + " " + am_pm;
	document.getElementById(apply_id + '_value').value = year + "-" + month + "-" + day + " " + t_hour + ":" + t_minute + ":00";

}

/* ------------------------------------------------------------------------------------------ */
/* Function to Clear Selected Saved Guest */
function clearGuest() {

	document.getElementById("b_select_assigned_guest").value = ''	// ID
	document.getElementById("b_fname").value = ''					// Name
	document.getElementById("b_fname").focus();
	document.getElementById("b_lname").value = ''					// Name
	document.getElementById("b_phone").value = '';					// Phone
	document.getElementById("b_email").value = '';					// E-mail
	document.getElementById("clear_Guest").style.display = 'none';

} 

/* ------------------------------------------------------------------------------------------ */
/* Function to set the focus of the initial field */
function setFocus(sec, subsec) {

	// Sections
	switch (sec) {
		
		// Sites
		case "sites":
			
			switch (subsec) {
				case "add":
				case "edit":
					var field = 's_name';
					break;	
			}
			
			break;
			
		// Links
		case "links":
			
			switch (subsec) {
				case "add":
				case "edit":
					var field = 'l_path';
					break;	
			}
			
			break;
			
		break;
			
	}
	
	if (document.getElementById(field)) { document.getElementById(field).focus(); }

}

/* ------------------------------------------------------------------------------------------ */
/* Function to show the selected label color */
function showColor(element) {
	var i = document.getElementById(element).selectedIndex;
	var code = document.getElementById(element).options[i].value;
	document.getElementById('label_color_display').style.background='#'+code;
	
}

/* ------------------------------------------------------------------------------------------ */
/* Function to change the opacity */
function hideMsg(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++;
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) { 
        	setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
          	timer++;
        } 
    }
} 

/* ------------------------------------------------------------------------------------------ */
/* Function to change the opacity for different browsers  */
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")";
    
    if (opacity == 0) {
    	document.getElementById(id).style.display='none';
    } 
}

/* ------------------------------------------------------------------------------------------ */
/* Function to check system requirements  */
function chkRequirements() {

	if (window.XMLHttpRequest) {
		// IE 7, mozilla, safari, opera 9
	} else {
		document.getElementById('requirements').style.display='block';
		// IE6, older browsers
	}
}

/* ------------------------------------------------------------------------------------------ */
/* Function to fade background colours  */

var nlbFade_hextable = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ]; // used for RGB to Hex and Hex to RGB conversions
var nlbFade_elemTable = new Array( ); // global array to keep track of faded elements
var nlbFade_t = new Array( ); // global array to keep track of fading timers

function NLBfadeBg( elementId, startBgColor, endBgColor, fadeTime ) {

	var timeBetweenSteps = Math.round( Math.max( fadeTime / 300, 30 ) );
	var nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId );
	if( nlbFade_elemTableId > -1 ) {
		for( var i = 0; i < nlbFade_t[nlbFade_elemTableId].length; i++ )
			clearTimeout( nlbFade_t[nlbFade_elemTableId][i] );
	}
	else
	{
		nlbFade_elemTable.push( elementId );
		nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId );
	}
	var startBgColorRGB = hexToRGB( startBgColor );
	var endBgColorRGB = hexToRGB( endBgColor );
	var diffRGB = new Array( );
	for( var i = 0; i < 3; i++ )
		diffRGB[i] = endBgColorRGB[i] - startBgColorRGB[i];
	var steps = Math.ceil( fadeTime / timeBetweenSteps );
	var nlbFade_s = new Array( );
	for( var i = 1; i <= steps; i++ )
	{
		var changes = new Array( );
		for( var j = 0; j < diffRGB.length; j++ )
			changes[j] = startBgColorRGB[j] + Math.round( ( diffRGB[j] / steps ) * i );
		if( i == steps )
			nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+endBgColor+'";', timeBetweenSteps*(i-1) );
		else
			nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+RGBToHex( changes )+'";', timeBetweenSteps*(i-1) );
	}
	nlbFade_t[nlbFade_elemTableId] = nlbFade_s;
}
function hexToRGB( hexVal )
{
	hexVal = hexVal.toUpperCase( );
	if( hexVal.substring( 0, 1 ) == '#' )
		hexVal = hexVal.substring( 1 );
	var hexArray = new Array( );
	var rgbArray = new Array( );
	hexArray[0] = hexVal.substring( 0, 2 );
	hexArray[1] = hexVal.substring( 2, 4 );
	hexArray[2] = hexVal.substring( 4, 6 );
	for( var k = 0; k < hexArray.length; k++ )
	{
		var num = hexArray[k];
		var res = 0;
		var j = 0;
		for( var i = num.length - 1; i >= 0; i-- )
			res += parseInt( nlbFade_hextable.indexOf( num.charAt( i ) ) ) * Math.pow( 16, j++ );
		rgbArray[k] = res;
	}
	return rgbArray;
}
function RGBToHex( rgbArray )
{
	var retval = new Array( );
	for( var j = 0; j < rgbArray.length; j++ )
	{
		var result = new Array( );
		var val = rgbArray[j];
		var i = 0;
		while( val > 16 )
		{
			result[i++] = val%16;
			val = Math.floor( val/16 );
		}
		result[i++] = val%16;
		var out = '';
		for( var k = result.length - 1; k >= 0; k-- )
			out += nlbFade_hextable[result[k]];
		retval[j] = padLeft( out, '0', 2 );
	}
	out = '#';
	for( var i = 0; i < retval.length; i++ )
		out += retval[i];
	return out;
}
if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function( val, fromIndex ) {
		if( typeof( fromIndex ) != 'number' ) fromIndex = 0;
		for( var index = fromIndex, len = this.length; index < len; index++ )
			if( this[index] == val ) return index;
		return -1;
	}
}
function padLeft( string, character, paddedWidth )
{
	if( string.length >= paddedWidth )
		return string;
	else
	{
		while( string.length < paddedWidth )
			string = character + string;
	}
	return string;
}


