﻿    
    
    // all general functions
    // Jan 2008 - PJC
    // Copyright P Capozzi - All rights reserved - May not be copied or used without express permission

    
  
   var savedTarget=null; // The target layer (effectively vidPane)
   var orgCursor=null;   // The original Cursor (mouse) Style so we can restore it
   var dragOK=false;     // True if we're allowed to move the element under mouse
   var dragXoffset=0;    // How much we've moved the element on the horizontal
   var dragYoffset=0;
     
   function moveHandler(e){
      if (e == null){ 
        e = window.event
      } 
      //document.getElementById("show").value = document.getElementById("show").value + " : button : " + e.button ;
//      if(e.button==0){
//        return;
//      }       
      if (e.button<=1 && dragOK ){
         savedTarget.style.left=e.clientX-dragXoffset+'px';
         savedTarget.style.top=e.clientY-dragYoffset+'px';
         return false;
      }
   }

   function cleanup(e) {
      document.onmousemove=null;
      document.onmouseup=null;
      savedTarget.style.cursor=orgCursor;
      dragOK=false;
   }

	
	function dragHandler(e){
      var htype='-moz-grabbing'; //firefox -  cursor type
      if (e == null){ //for ie
         e = window.event; 
         htype='hand';
      } 
      
      var target = e.target != null ? e.target : e.srcElement;  // firefox : ie
      orgCursor=target.style.cursor;
      //document.getElementById("show").value = document.getElementById("show").value + " : " + target.tagName + " : " + target.getAttribute("isDrag");
      if (target.tagName != "IMG" && target.tagName != "DIV"){
          //document.getElementById("show").value = target.tagName
          if (target.getAttribute("isDrag")!=null) {
             // for debugging
             //document.getElementById("show").value = document.getElementById("show").value + " : " + target.getAttribute("isDrag");
            if (target.getAttribute("isDrag")==0){
                 if (target.tagName!="DIV"){
                    while (target.tagName!="DIV"){
                        target = target.parentNode
                    }
                 }
             }
             if (target.getAttribute("isDrag")==1){
                 if (target.tagName!="TABLE"){
                    while (target.tagName!="TABLE"){
                        target = target.parentNode
                    }
                 }
             }
             savedTarget=target;       
             target.style.cursor=htype;
             dragOK=true;
             savedTarget.style.left = target.offsetLeft;
             savedTarget.style.top = target.offsetTop;
             dragXoffset=e.clientX-parseInt(savedTarget.offsetLeft);
             dragYoffset=e.clientY-parseInt(savedTarget.offsetTop);
             document.onmousemove=moveHandler;
             document.onmouseup=cleanup;
             return false;
          }
      }
   }

    String.prototype.trim = function() {
	    return this.replace(/^\s+|\s+$/g,"");
    }

	 // set the correct value in a drop down
    function SetDropDownIndex(dropDown,indexValue){
        selObj = document.getElementById(dropDown);
        for (z = 0;z< selObj.length;z++){
            if (selObj[z].value == indexValue){
                selObj.selectedIndex = z;
                dropIndex = z;
            }
        }
        return selObj[dropIndex].value;
    }
   
    function GetRadioValue(obin){
        var retid = 0;
        for(x=0;x<obin.length;x++){
        
            if(obin[x].checked==true){  
                retid = obin[x].value
            }
        }
        return retid;
    }
    
    function ClearRadioValue(obin){
        for(x=0;x<obin.length;x++){
            obin[x].checked=false  
        }
    }
    
    
    function IsUser(){
        if(curUser.userId!=0){
            return true;
        }
        else{
            return false;
        }
     }


     // this function returns an array of rows
     function GetRows(dataIn) {
         return dataIn.split("$");

     }

     // this function return an array with a specific row 
     function GetRow(dataIn, rowNumber) {
         rowsAr = dataIn.split("$");
         rowAr = rowsAr[rowNumber].split("|");
         return rowAr;
     }

     function llDistance(lat1, lon1, lat2, lon2, unit) {

         var radlat1 = Math.PI * lat1 / 180
         var radlat2 = Math.PI * lat2 / 180
         var radlon1 = Math.PI * lon1 / 180
         var radlon2 = Math.PI * lon2 / 180
         var theta = lon1 - lon2
         var radtheta = Math.PI * theta / 180
         var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
         dist = Math.acos(dist)
         dist = dist * 180 / Math.PI
         dist = dist * 60 * 1.1515
         if (unit == "K") { dist = dist * 1.609344 }
         if (unit == "N") { dist = dist * 0.8684 }
         return Math.round(dist)
     }                    

    