// JavaScript Document

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//Yahoo UI Starts
	//Loading panel
	YAHOO.namespace("example.container");
	var HeaderMessage = "Loading ... Please Wait ";	
	
	function LoadingPanel(HeaderMessage) {
		var content = document.getElementById("content");
		content.innerHTML = "";
		//if (!YAHOO.example.container.wait) {
			// Initialize the temporary Panel to display while waiting for external content to load
			YAHOO.example.container.wait = 
					new YAHOO.widget.Panel("wait",  
													{ width: "240px", 
													  fixedcenter: true, 
													  close: false, 
													  draggable: true, 
													  zindex:4,
													  modal: true,
													  visible: false
													} 
												);    
			YAHOO.example.container.wait.setHeader(HeaderMessage);
			YAHOO.example.container.wait.setBody("<img src=\"/yui_images/ajax-loader.gif\"/>");
			YAHOO.example.container.wait.render(document.body);
		//}		
		// Show the Panel		
		YAHOO.example.container.wait.show();
	}
	function HideLoadingPanel() {
		YAHOO.example.container.wait.hide();
	}
	
	function AjaxDisplayResponse(Message) {
		
		var content = document.getElementById("content");
		content.innerHTML = "";
		//alert (content.innerHTML);
			
			YAHOO.example.container.wait = "";			
			// Initialize the temporary Panel to display while waiting for external content to load
			YAHOO.example.container.wait = 
					new YAHOO.widget.Panel("wait",  
													{ width: "240px", 
													  fixedcenter: true, 
													  close: true, 
													  draggable: true, 
													  zindex:4,
													  modal: true,
													  visible: false
													} 
												);    
			YAHOO.example.container.wait.setHeader('Randem Studios');
			YAHOO.example.container.wait.setBody(Message);
			YAHOO.example.container.wait.render(document.body);
			
		// Show the Panel
		YAHOO.example.container.wait.show();
	}
//Yahoo UI Ends

function error_form_contain (controlid, imageid, message) {
	
		$(controlid).className = 'form_element_error';
		$(imageid).src = 'images/exclamation.gif'; 
		$(imageid).style.cursor = 'pointer'; 
		
		$(imageid).title = '<table cellpadding="0"  cellspacing="0"  border="0"><tr><td align="left" width="20"><img src="images/exclamation_light.gif" valign="middle"></td><td class="tooltip"> '+message+'</td></tr></table>  ';
		$(imageid).alt = '<table cellpadding="0"  cellspacing="0"  border="0"><tr><td align="left" width="20"><img src="images/exclamation_light.gif" valign="middle"></td><td class="tooltip"> '+message+'</td></tr></table> ';
}


function error_form_contain_pass (controlid, imageid, message) {
	
		$(controlid).className = 'form_element_error';
		$(imageid).src = 'images/exclamation_round.gif'; 
		$(imageid).style.cursor = 'pointer'; 
		
		$(imageid).title = message ;
		$(imageid).alt = message ;
}

function submitbyenter(formid,myfield, e, dec)
{
	var key;
	var keychar;
	if (window.event)
	key = window.event.keyCode;
	else if (e)
	key = e.which;
	else
	return true;		
	if (key==13)
	{		
		LoginCheck();
		//$(formid).submit();			
	}	
}
function getkey(e)
{
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
		return null;
}	
function goodchars(e, goods)
{
	var key, keychar;
	key = getkey(e);
	if (key == null) 
		return true;
	// get character
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();
	// check goodkeys
	if (goods.indexOf(keychar) != -1)
		return true;
	// control keys
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
	{
		
		return true;
	}
	else
	{	// else return false
		return false;
	}
}
function eliminatespace(e)
{
	var key, keychar;
	key = getkey(e);
	
	if(key==32)
	return false;
	else
	return true;
	
}

function redirect_href(pageName)
{
	location.href = pageName;
	return location.href;
	
}

function $$(id)
{
	return document.getElementById(id);
}

function validate_email(input_val)
{
	if(($(input_val).value.indexOf(".") > 2) && ($(input_val).value.indexOf("@") > 0)){
		return true;
	} else {
		alert("Please Enter a Valid Email Address");
		$(input_val).focus();
		return false;
	}
}

function isUrl(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}
/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

function echeck(str) {

	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   alert("Invalid E-mail ID")
	   return false
	}
	
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   alert("Invalid E-mail ID")
	   return false
	}
	
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		alert("Invalid E-mail ID")
		return false
	}
	
	 if (str.indexOf(at,(lat+1))!=-1){
		alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.indexOf(dot,(lat+2))==-1){
		alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		alert("Invalid E-mail ID")
		return false
	 }
	
	 return true					
}
//Javascript Resize to Inner Browser Dimensions
function GetInnerSize () {
	var x,y;
	if (self.innerHeight) // all except Explorer
	{
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return [x,y];
}

function ResizeToInner (w, h, x, y) {
	// make sure we have a final x/y value
	// pick one or the other windows value, not both
	if (x==undefined) x = window.screenLeft || window.screenX;
	if (y==undefined) y = window.screenTop || window.screenY;
	// for now, move the window to the top left
	// then resize to the maximum viewable dimension possible
	window.moveTo(0,0);
	window.resizeTo(screen.availWidth,screen.availHeight);
	// now that we have set the browser to it's biggest possible size
	// get the inner dimensions.  the offset is the difference.
	var inner = GetInnerSize();
	var ox = screen.availWidth-inner[0];
	var oy = screen.availHeight-inner[1];
	// now that we have an offset value, size the browser
	// and position it
	window.resizeTo(w+ox, h+oy);
	window.moveTo(x,y);
}
// end resize

function setHiddenValue(req_field,req_val)
{
	$(req_field).value = req_val;
}

/// user defined trim ///
function LTrim( value ) {
			
			var re = /\s*((\S+\s*)*)/;
			return value.replace(re, "$1");
			
		}
		// Removes ending whitespaces
		function RTrim( value ) {
			
			var re = /((\s*\S+)*)\s*/;
			return value.replace(re, "$1");
			
		}
		
		// Removes leading and ending whitespaces
		function trim( value ) {
			
			return LTrim(RTrim(value));
			
		}
	
	
function setReqPage(page_name)
{
	window.location = page_name;
}
function replaceButtonText(buttonId, text)
{
  if (document.getElementById)
  {
    var button=document.getElementById(buttonId);
    if (button)
    {
      if (button.childNodes[0])
      {
        button.childNodes[0].nodeValue=text;
      }
      else if (button.value)
      {
        button.value=text;
      }
      else //if (button.innerHTML)
      {
        button.innerHTML=text;
      }
    }
  }
}
function so_clearInnerHTML(obj) {
	// perform a shallow clone on obj
	nObj = obj.cloneNode(false);
	// insert the cloned object into the DOM before the original one
	obj.parentNode.insertBefore(nObj,obj);
	// remove the original object
	obj.parentNode.removeChild(obj);
}
function getAjaxData(reqVar,id,pageUrl,responseArea,qryStr){	
	if ((id == null) || (id == "")) return;
	if(!oXmlHttpAjax) var oXmlHttpAjax = zXmlHttp.createRequest();
	function $(argument){ return document.getElementById(argument)};
	
	var myRegExp = /&/;
	var strFlag = (typeof(qryStr)!= "undefined") ? true : false;
	var matchPost = (strFlag!=false) ? qryStr.search(myRegExp) : "blankFound";
	var qryStrFlag = (matchPost!="blankFound") && (matchPost!=-1) ? true : false;
	
	var url = pageUrl + "?" + reqVar + "=" + escape(id) ;
	url += ((!qryStrFlag)&&(strFlag==true)) ? ("&" + qryStr) : ((qryStrFlag)&&(strFlag==true)) ? qryStr : "" ;
//	alert(url);return;
	oXmlHttpAjax.open("GET", url, true);
	
	oXmlHttpAjax.onreadystatechange = function () {
		if (oXmlHttpAjax.readyState == 4) {
			if (oXmlHttpAjax.status == 200) {
//				if(oXmlHttpAjax.responseText == 1)
				if($(responseArea).style.display = "none") 
					$(responseArea).style.display = "";
				$(responseArea).innerHTML = oXmlHttpAjax.responseText;
			} else {
				$(responseArea).innerHTML = "An error occurred: " + oXmlHttpAjax.statusText; //statusText is not always accurate
			}
		}            
	};
	oXmlHttpAjax.send(null);
}

/*
* Outputs response of a page
* common function
* url, the url of which output will render
* renderTo, output render in this ID
* param, extra parameters
*/
function renderPage(url, renderTo, params)
{
	HeaderMessage = "Loading ... Please Wait ";
	LoadingPanel(HeaderMessage);
	$('content').style.display = 'none';
	var xmlhttp = false;

	
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	try {
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
	xmlhttp = false;
	}
	}
	@end @*/

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		xmlhttp = new XMLHttpRequest();
	}
	if (xmlhttp) 
	{
		var query = params;
		xmlhttp.open('POST', url);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		xmlhttp.send(query);
		xmlhttp.onreadystatechange = function() 
		{ 
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			{
				var response = xmlhttp.responseText;
				while (response.substring(response.length-1, response.length) == '\n')
				{
					response = response.substring(0,response.length-1);
				}
				document.getElementById(renderTo).innerHTML = response;
			}
			HideLoadingPanel();
			myLightbox		= new Lightbox();
			myLightWindow	= new lightwindow();
		}
		delete xmlhttp;
	}

//function initLightbox() { myLightbox = new Lightbox(); }
//Event.observe(window, 'load', initLightbox, false);
}


/**/
function renderForm(obj, url, renderTo)
{
	HeaderMessage = "Loading ... Please Wait ";
	LoadingPanel(HeaderMessage);
	$('content').style.display = 'none';
	var xmlhttp = false;

	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	try {
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
	xmlhttp = false;
	}
	}
	@end @*/

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		xmlhttp = new XMLHttpRequest();
	}
	if (xmlhttp) 
	{
		var query = $('the_form').serialize();
		xmlhttp.open('POST', url);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		xmlhttp.send(query);
		xmlhttp.onreadystatechange = function() 
		{ 
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			{
				var response = xmlhttp.responseText;
				document.getElementById(renderTo).innerHTML = response;
			}
			HideLoadingPanel();
		}
		delete xmlhttp;
	}
}

function ShowBookedDates(book_id)
{
	var content = document.getElementById("content");
	content.innerHTML = "";
	
	var divcontent = document.getElementById("date_equip_"+book_id);
	YAHOO.example.container.wait = new YAHOO.widget.Panel("wait", 
													{ width: "440px", 
													  fixedcenter: true, 
													  close: true, 
													  draggable: false, 
													  zindex:4, 
													  modal: true, 
													  visible: false
													}
												);
	YAHOO.example.container.wait.setHeader("Booking Date(s) and Equipment(s) Details");
	YAHOO.example.container.wait.setBody(divcontent.innerHTML);
	YAHOO.example.container.wait.render(document.body);
	YAHOO.example.container.wait.show();
}


function ShowInvitedFriend(member_id)
{
	var content = document.getElementById("content");
	content.innerHTML = "";
	
	var divcontent = document.getElementById("mem_det_"+member_id);
	YAHOO.example.container.wait = new YAHOO.widget.Panel("wait", 
													{ width: "460px", 
													  fixedcenter: true, 
													  close: true, 
													  draggable: false, 
													  zindex:4, 
													  modal: true, 
													  visible: false
													}
												);
	YAHOO.example.container.wait.setHeader("Invited Friend(s) List");
	YAHOO.example.container.wait.setBody(divcontent.innerHTML);
	YAHOO.example.container.wait.render(document.body);
	YAHOO.example.container.wait.show();
}

function ShowNonmemberDet(nonmember_id)
{
	var content = document.getElementById("content");
	content.innerHTML = "";
	
	var divcontent = document.getElementById("nonmem_det_"+nonmember_id);
	YAHOO.example.container.wait = new YAHOO.widget.Panel("wait", 
													{ width: "460px", 
													  fixedcenter: true, 
													  close: true, 
													  draggable: false, 
													  zindex:4, 
													  modal: true, 
													  visible: false
													}
												);
	YAHOO.example.container.wait.setHeader("Non member details");
	YAHOO.example.container.wait.setBody(divcontent.innerHTML);
	YAHOO.example.container.wait.render(document.body);
	YAHOO.example.container.wait.show();
}

function ShowCancelReasonForm(url, ID)
{
	document.getElementById("cancelUrl").value = url;
	document.getElementById("cancelGrid").value = ID;
	
	var content = document.getElementById("content");
	content.innerHTML = "";
	
	var divcontent = document.getElementById("cancelDiv");
	YAHOO.example.container.wait = new YAHOO.widget.Panel("wait", 
													{ width: "350px", 
													  fixedcenter: true, 
													  close: true, 
													  draggable: false, 
													  zindex:4, 
													  modal: true, 
													  visible: false
													}
												);
	YAHOO.example.container.wait.setHeader("Cancel Booking");
	YAHOO.example.container.wait.setBody(divcontent.innerHTML);
	YAHOO.example.container.wait.render(document.body);
	YAHOO.example.container.wait.show();
}

function renderForm2(id, url, renderTo)
{
	HeaderMessage = "Loading ... Please Wait ";
	LoadingPanel(HeaderMessage);
	$('content').style.display = 'none';
	var xmlhttp = false;

	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	try {
	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
	xmlhttp = false;
	}
	}
	@end @*/

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		xmlhttp = new XMLHttpRequest();
	}
	if (xmlhttp) 
	{
		var query = $(id).serialize();
		//alert(query);
		xmlhttp.open('POST', url);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		xmlhttp.send(query);
		xmlhttp.onreadystatechange = function() 
		{ 
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
			{
				var response = xmlhttp.responseText;
				document.getElementById(renderTo).innerHTML = response;
			}
			HideLoadingPanel();
		}
		delete xmlhttp;
	}
}


function makeDefaultImage(url, renderTo, params)
{
	if (confirm("Are you sure want to make this image default image ?"))
	{
		renderPage(url, renderTo, params);
	}
}

function deleteMultiple(obj1, url, gridID)
{
	var flagSelected = false;
	var obj	= eval('document.'+obj1);
	//alert("ok"+obj.elements.length) ;
	for( var i = 0; i < obj.elements.length; i++) //Itrate through all the controls on the form
    {
        var elm = obj.elements[i];
		
        if(elm.type == 'checkbox') //Check if the control is a check box
        {
           //alert(elm.checked) ;
		   if(elm.checked == true)
            {
                flagSelected = true;
            }
        }
	}
	if (flagSelected != true) 
	{
		alert ("Please mark items for deletion first.");
		return false ;
	}
	else
	{
		if(confirm("Are you sure you want to delete the item(s) ? "))
		{
			renderForm(obj, url, gridID);
		}
	}
	
	/*if (confirm("Please mark items for deletion first."))
	{
		//if(confirm("Are you sure you want to delete the item(s) ? "))
		//{
			renderForm(obj, url, gridID);
		//}
	}*/
}

function sendMultipleInvoice(obj, url, gridID)
{
	var flagSelected = false;
	var obj	= eval('document.'+obj);
	for( var i = 0; i < obj.elements.length; i++) //Itrate through all the controls on the form
    {
        var elm = obj.elements[i];
		
        if(elm.type == 'checkbox') //Check if the control is a check box
        {
		   if(elm.checked == true)
            {
                flagSelected = true;
            }
        }
	}
	
	if (flagSelected != true) 
	{
		alert ("Please mark items for sending invoice first.");
		return false ;
	}
	else
	{
		if (confirm("Are you sure want to send invoice to the selected item(s) ?"))
		{
			renderForm(obj, url, gridID);
		}
	}
}

function statusChange(obj, url, gridID)
{
	//alert(url) ;
	if (confirm("Are you sure want to change the status ?"))
	{
		renderForm(obj, url, gridID);
	}
}

function init() {
	//scrollablediv 1
	var scroller = new Bs_ScrollableDiv();
	scroller.init('divContainer_1', 'divContent_1');
		
	var sliderObj = new Bs_Slider();
	sliderObj.width          = 20;
	sliderObj.height         = 'auto';
	sliderObj.arrowMouseOver = true;
	sliderObj.direction      = 1;
	sliderObj.imgDir         = 'images/';
	sliderObj.setBackgroundImage('scroll_ln.gif', 'repeat');
	sliderObj.setSliderIcon('scroll_knob.gif', 18, 67);
	sliderObj.setArrowIconLeft('scroll_up.gif', 19, 14);
	sliderObj.setArrowIconRight('scroll_dn.gif', 19, 14);
		
	scroller.setSliderObject(sliderObj, 'sliderDiv1');
	scroller.setSlideSpeed(50, 'pixel'); //50 pixel per second
	scroller.setWheelSpeed(10, 'pixel'); //10 pixel per tick
	document.onmousemove=positiontip
}
