/*-----------------------Global parameters - Start--------------------------*/

/*-----------------------Global parameters - Start--------------------------*/
	var _noDownLoadFlag=true;
	var _isPopup = false;
	var _isLov = false;
	var _isDim = false;
/*------------------------Common functions - Start---------------------------------------*/
	var _bw = new bw_check();
	function bw_check(){
    var is_major = parseInt( navigator.appVersion );
    this.nver = is_major;
    this.ver = navigator.appVersion;
    this.agent = navigator.userAgent;
    this.dom = document.getElementById ? 1 : 0;
    this.opera = window.opera ? 1 : 0;
    this.ie5 = ( this.ver.indexOf( "MSIE 5" ) > -1 && this.dom && !this.opera ) ? 1 : 0;
    this.ie6 = ( this.ver.indexOf( "MSIE 6" ) > -1 && this.dom && !this.opera ) ? 1 : 0;
    this.ie7 = ( this.ver.indexOf( "MSIE 7" ) > -1 && this.dom && !this.opera ) ? 1 : 0;
    this.ie4 = ( document.all && !this.dom && !this.opera ) ? 1 : 0;
    this.iFrame = this.ie5 || this.ie6 || this.ie7;
    this.ie = this.ie4 || this.ie5 || this.ie6 || this.ie7;
    this.mac = this.agent.indexOf( "Mac" ) > -1;
    this.ns6 = ( this.dom && parseInt( this.ver ) >= 5 ) ? 1 : 0;
    this.ie3 = ( this.ver.indexOf( "MSIE" ) && ( is_major < 4 ) );
    this.hotjava = ( this.agent.toLowerCase().indexOf( 'hotjava' ) != -1 ) ? 1 : 0;
    this.ns4 = ( document.layers && !this.dom && !this.hotjava ) ? 1 : 0;
    this.bw = ( this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera );
    this.ver3 = ( this.hotjava || this.ie3 );
    this.opera7 = ( ( this.agent.toLowerCase().indexOf( 'opera 7' ) > -1 ) || ( this.agent.toLowerCase().indexOf( 'opera/7' ) > -1 ) );
    this.operaOld = this.opera && !this.opera7;
    return this;
	}
/*------------------------Common functions - End---------------------------------------*/

/*------------Div Drag related functions - Start--------------------*/
// Global object to hold drag information.
var dragObj = new Object();
dragObj.zIndex = 0;

function dragStart(event,container,container2) {
  var el;
  var x, y;

  // If an element id was given, find it. Otherwise use the element being
  // clicked on.

	if (container2) dragObj.continerNode = container2;
  if (container) dragObj.elNode = container; //document.getElementById(id);
  else {
    if (_bw.ie) dragObj.elNode = window.event.srcElement;
    if (_bw.ns6) dragObj.elNode = event.target;

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }
  // Get cursor position with respect to the page.
  if (_bw.ie) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (_bw.ns6) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }
  // Save starting positions of cursor and element.
  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = (container.style.left)?container.style.left:0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = (container.style.top)?container.style.top:0;

  // Update element's z-index.

  if(dragObj.continerNode){
  	dragObj.continerNode.style.zIndex = ++dragObj.zIndex;
  	dragObj.elNode.style.zIndex = dragObj.continerNode.style.zIndex + 1;
  }
  else
  	dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (_bw.ie) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (_bw.ns6) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }

}

function dragStop(event) {
  // Stop capturing mousemove and mouseup events.
  if (_bw.ie) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (_bw.ns6) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}

function dragGo(event) {
  var x, y;
  // Get cursor position with respect to the page.
  if (_bw.ie) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (_bw.ns6) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Move drag element by the same amount the cursor has moved.
  var dragLeft = (dragObj.elStartLeft + x - dragObj.cursorStartX);
  var dragTop = (dragObj.elStartTop  + y - dragObj.cursorStartY);

  try{
	  if(_isLov){
		_xposition=dragLeft;
		_yposition=dragTop;
	  }
  }catch(e){}

  try{
	  if(_isDim){
		_xdimposition=dragLeft;
		_ydimposition=dragTop;
	  }
  }catch(e){}

  try{
	  if(_isPopup){
		_xpoppos=dragLeft;
		_ypoppos=dragTop;
	  }
  }catch(e){}

  dragObj.elNode.style.left =
    ((dragLeft>0)?dragLeft:0) + "px";
  dragObj.elNode.style.top  =
    ((dragTop>130)?dragTop:130) + "px";
  if (dragObj.continerNode){
  	dragObj.continerNode.style.left = dragObj.elNode.style.left;
  	dragObj.continerNode.style.top = dragObj.elNode.style.top;
  }
  if (_bw.ie) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (_bw.ns6) event.preventDefault();
}

/*------------Div Drag related functions - End--------------------*/



/*------------------------HTML Controls related common functions - Start-----------------*/
//Function to toggle div visibility
function toggleDiv(divId){
	try{ getElById(divId).style.visibility = (getElById(divId).style.visibility=="")?"hidden":"";}
	catch(ex){ window.status = 'Error in toggleDiv('+divId+')';}
}

//Function to toggle div visibility
function divVisibility(divId,show){
	try{ getElById(divId).style.visibility = (show)?"":"hidden";}
	catch(ex){ window.status = 'Error in toggleDiv('+divId+')';}
}

//Function to toggle table visibility
function toggleTableVisibility(tblId){
	try{
		getElById(tblId).style.display = (getElById(tblId).style.display=="none")?"":"none";
	}catch(ex){}
}

function tableVisibility(tblId, tblDisp){
	try{
		getElById(tblId).style.display = (tblDisp)?"":"none";
	}catch(ex){}
}
//function to write text into a div
function writeDiv(divId,text){
	try{ getElById(divId).innerHTML = text;}
	catch(ex){ window.status = 'Error in writeDiv('+divId+')';}
}

//Function to return element as an object
function getElById(idVal) {
  if (document.getElementById != null)
    return document.getElementById(idVal);
  if (document.all != null)
    return document.all[idVal];

  alert("Problem getting element by id");
  return null;
}
/*------------------------HTML Controls related common functions - End-----------------*/

/*------------------------HTML Controls css related functions - Start--------------------*/
//Function change css class when focus lost
function onBlur_FieldClassChange(obj,str){
	if(obj.readOnly) return;
	obj.className = obj.className.replace("Focus","");
	if ((str!="")&&((obj.type=="text")||(obj.type=="textarea"))){
		try{
			if (!validateDataType(str,doCaseChange(obj,str)))
				if (obj.className.indexOf("Error")==-1)
	   			obj.className = obj.className + "Error";
   		}catch(ex){}
   	window.status = '';
	}
}
//Function to change onfocus css class
function onFocus_FieldClassChange(obj,str){
	if(obj.readOnly) return;
	if (str) if(str!='') window.status = getDataTypeDesc(str);
	if (obj.className.indexOf("Focus")==-1)
   obj.className = obj.className + "Focus";
   obj.className = obj.className.replace("Error","");
   if ((str.indexOf("DATE") == -1)&&(obj.type=="text")) obj.select();
   if (str) if ((str.indexOf("DATE") != -1)&&(obj.type=="text")) if(obj.value==_environment.dateFormat) obj.value='';
}
/*------------------------HTML Controls css related functions - End--------------------*/



//----------------Table related scripts - Start----------------//
/* Following functions are related with table css effects. Hightlighting
the mouseover row and selected row is done by following functions.*/
var tagObj;
var selectedRow;
var oControl;

function setRowMouseOver(obj){
if (obj.className.indexOf("Hover")==-1)
obj.className = obj.className + "Hover";
}

function setRowMouseOut(obj){
obj.className = obj.className.replace("Hover","");
}

function setSelectedRow(obj){
	if (!oControl) oControl = obj;
	tagObj = obj.parentNode;
	if (tagObj.nodeName=="TBODY"){
		nodelist = tagObj.childNodes;
		for(i=0;i<nodelist.length;i++){
			if (nodelist[i].nodeName=="TR"){
				nodelist[i].className = nodelist[i].className.replace("Selected","");
			}
		}
		if (selectedRow.className.indexOf("Selected")==-1)
		selectedRow.className = (selectedRow.className).replace("Hover","")+"Selected";
	}
	else{
		if (tagObj.nodeName=="TR"){
			selectedRow = tagObj;
			if (oControl.checked){
				if (selectedRow.className.indexOf("Selected")==-1){
					selectedRow.className = (selectedRow.className).replace("Hover","")+"Selected";
				}
			}
			else{
				selectedRow.className = (selectedRow.className).replace("Selected","");
			}
			if (oControl.type!="radio"){
				oControl = null;
				return;
			}
		}
		setSelectedRow(tagObj);
	}
}


//----------------Table related scripts - End----------------//

/*
function getParseDataArray(str){
	if (str=="") return new Array();
	var arrTbl = new Array();
	var iTbl = 0;
	var arrRec = str.split("|");
	var recLen = arrRec.length;
	for(i=0;i<recLen;i++){
		sRec = arrRec[i];
		if (sRec!=""){
			arrFld = sRec.split("~");
			arrTbl[iTbl] =arrFld;
			iTbl++;
		}
	}
	return arrTbl;
}

function setArrayDataString(arr){
	if (arr=="") return "";
	var irecLen = arr.length;
	var str="";
	for(i=0;i<irecLen;i++){
		ifldLen = arr[i].length;
		str+=(str!="")?"|":"";
		for(j=0;j<ifldLen;j++){
			str+=(str=="")?arr[i][j]:"~"+arr[i][j];
		}
	}
	return str;
}*/
//----------------Tab Image rollover related scripts - Start----------------//
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_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_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];}
}
//----------------Tab Image rollover related scripts - End----------------//
//----------------Script for loading image between server side output - Start----------------//
function targetOnClick(){
	try{
		if(_noDownLoadFlag){
			toggleTableVisibility("formTabl");
			toggleTableVisibility("loadTabl");
		}
	}catch(ex){}

}
//----------------Script for loading image between server side output - End----------------//
//-------------------ValidationException methode-------------------------------------------//
function callTableToggle(tblId){
	if(getElById(tblId).style.display=="")
		getElById(tblId).style.display="none"
	toggleTableVisibility(tblId);
	tblName=getElById(tblId).id;
	imgName="img"+tblName.substring(3,tblName.length);
	if(getElById(imgName).src.search("images/plus.gif")!=-1){
		getElById(imgName).src="images/minus.gif";
	}
	else if(getElById(imgName).src.search("images/minus.gif")!=-1){
		getElById(imgName).src="images/plus.gif";
	}
}
//added for display text validation for JTextArea
function textArea_displayRemaningText(txtObject,maxLength,alertDisable,truncate,divName){
			var txtObj = txtObject.value;
			var txtLen = txtObj.length;
			var txtMax = maxLength;
			var strInfo = "";
			var strMessage = "";
			var nremainder = 0;
			if(txtMax!=null && txtMax!="" && txtMax!=" "){
				var MsgFront = "<FONT class='valTextArea' > Remaining characters <b>";
				var MsgRear =  ")</b></FONT>";
		        nremainder = txtMax - txtLen;

		  		 if	((txtLen>txtMax) && (lMessOverSized==false)){
		  		 	 if(!alertDisable)
					 	alert(" Message body exceeds the limitation of "+txtMax+" characters ");
					 if(truncate)
						txtObject.value=txtObject.value.substring(0,txtMax);
		             strMessage ="<FONT  class='invalTextArea'>Characters Exceeded <b>"+(txtLen - txtMax)+" ( Max "+txtMax+")</b></FONT>";
					 lMessOverSized = true;
				}
			    else{
			         if (txtLen<=txtMax){
			            lMessOverSized = false ;
		       		    strMessage = MsgFront + nremainder +" ( Max "+txtMax + MsgRear;
				     }
			         else{
			            strMessage ="<FONT class='invalTextArea' >Characters Exceeded <b>"+(txtLen - txtMax)+" ( Max "+txtMax+")</b></FONT>";
			         }
			     }
				 if(divName!=null && divName!="" && divName!=""){
					writeDiv(divName,strMessage);
				 }
		     }
}

function callRowToggle(parentRow){
	try{
		var obj=getElById("rowimg:"+parentRow);
		if((obj.src).indexOf("plus")==-1)
			obj.src = "images/plus.gif";
		else
			obj.src = "images/minus.gif";
	}catch(e){}
	try{
		toggleTableVisibility(parentRow);
	}catch(e){}
}

function invokePage(url, pid, target){
    if(url != ""){
        if(target){
            if(target != ""){
                switch(target){
                    case "parent":openInParentWindow(url);
                                 
						break;
                    
					case "popup":openInPopupWindow(url);
                                 
						break;
                
				}
             }else{
                targetOnClick();
                
				window.location.replace(url);
             
			 }
        }else{
            targetOnClick();
            
			window.location.replace(url);
        }
    }
}

function openInParentWindow(url){
    try{
		if ( parent.window.opener.closed ) {
            var obj = window.open( url, "SkycargoHome");
			try{
		        obj.focus();
	        }catch(e){}
		} else {
            parent.window.opener.location = url;
			try{
				parent.window.opener.focus();
			}catch(e){}
		}
    }catch(e){
        var obj = window.open(url,"SkycargoHome");
        try{
            obj.focus();
        }catch(e){}
    }
}

function openInPopupWindow(url){
    var obj = window.open(url,"SkychainPopup");
    try{
        
		obj.focus();
    
	}catch(e){}
}
/**No right click logic - Start**/
var message = _property.rightClickDisabledMsg;

function clickIE() {
	if (document.all) {
	    alert(message);
	    return false;
	}
}

function clickNS(e) {
	if(document.layers||(document.getElementById&&!document.all)) {
		if (e.which==2||e.which==3) {
    		alert(message);
			return false;
		}
	}
}

function noRightClick(){
	if (document.layers){
		document.captureEvents(Event.MOUSEDOWN);
		document.onmousedown = clickNS;
	}else{
		document.oncontextmenu = function(){clickIE();};
		document.onmouseup = clickNS;
	}
	document.oncontextmenu=new Function("return false")
}
/**No right click logic - End**/
function bodyOnLoad(){
    noRightClick();
}

function getScreenPoint(aTag){
   var oTmp = aTag;
   var point = new ScreenPoint(0,0);
   do{
      point.x += oTmp.offsetLeft;
      point.y += oTmp.offsetTop;
      oTmp = oTmp.offsetParent;
   }while (oTmp.tagName != "BODY" && oTmp.tagName != "HTML");
   return point;
}