/*
* Script: cmn.js
* Author: UMG
* Descrpition: Common utilities script.
*/

//set the domain name so that it can talk to map viewer
hostDomain = document.domain;
//document.domain = hostDomain.substring(hostDomain.indexOf(".")+1);

// local variables
var pIsIE  = (navigator.appVersion.indexOf("MSIE")>=0);
var pIsNS  = (navigator.appName.indexOf("Netscape")>=0);
var pIsWin = (navigator.userAgent.indexOf("Win")>=0)
var pDomainPfx = ""; //pDomainPfx = "http://www.geographynetwork.com";
var initMinx = 67.2314;
var initMiny = 8.0057;
var initMaxx = 94.4215;
var initMaxy = 34.5346;

//the custom id, must in the url for every request call
var origid = "ESRI_World";

function openMarketplace(){
  var oFrm =  document.forms.fSubmit;
  if (oFrm != null) {
    oFrm.action = "/Portal/DiscoveryServlet";
    cmnCmd('marketplace');
  }
}

// execute a command
function cmnCmd(sCmd) {
if ((sCmd != "viewmetadata") && window.opener && !window.opener.closed && window.opener.cmnCmd) {
     var oFrm = window.opener.document.forms.fSubmit;
     if (oFrm != null) {
        oFrm.action = document.forms.fSubmit.action;
     }
     window.opener.cmnCmd(sCmd);
  } else {
    if (sCmd.toLowerCase().indexOf("help") == -1) {
       var oFrm = document.forms.fSubmit;
      if (oFrm && oFrm.command) {
        self.focus(); oFrm.command.value = sCmd; oFrm.target = "_top";   oFrm.submit();
      }
    } else {
      var s2 = "left=10,top=10,width=770,height=450";
      s2 += ",toolbar=0,location=0,directories=0,status=0,resizable=yes,scrollbars=yes";
      var winHelp = window.open(sCmd,"PTK_Help",s2);
      winHelp.focus();
    }
  }

}

//helper function to call cmnCmd without pop up window
/*function cmnCmd(sCmd) {
 doCmnCmd(sCmd,"_top");
}*/

// execute a command
function doCmnCmd(sCmd,target) {
  if ((sCmd != "viewmetadata") && window.opener && !window.opener.closed && window.opener.cmnCmd) {
    window.opener.cmnCmd(sCmd);
  } else {
    if (sCmd.toLowerCase().indexOf("help") == -1) {
      var oFrm = document.forms.fSubmit;
      if (oFrm && oFrm.command) {
        self.focus();
        oFrm.command.value = sCmd;
        oFrm.target = target;
        oFrm.submit();
      }
    } else {
      var s2 = "left=10,top=10,width=770,height=450";
      s2 += ",toolbar=0,location=0,directories=0,status=0,resizable=yes,scrollbars=yes";
      var winHelp = window.open(sCmd,"PTK_Help",s2);
      winHelp.focus();
    }
  }
}

// get search area for viewer
function cmnGetSearchArea() {
  var winMap;
  var sName = "GOSArcExplorerWeb";
  var sInfo = "toolbar=no,width=800,height=564";
  if (pIsWin)
    sInfo = "toolbar=no,width=800,height=564,left=5,top=5";
  else if (!pIsWin && pIsNS)
    sInfo = "toolbar=no,width=800,height=564,screenX=5,screenY=5";
  else if (!pIsWin && pIsIE)
    sInfo = "toolbar=no,width=784,height=548,left=5,top=5";
  winMap = window.open('',sName,sInfo);
  if (!winMap.closed && winMap.Map && winMap.Hidden4.setMapExtentStatus) {
    winMap.opener = self;
    //winMap.Map.setMapExtentStatus(true);
	winMap.Hidden4.setMapExtentStatus(true);
  } else {
    winMap.close(); alert("The Map Viewer is not currently open.");
  }
}

// view details
function cmnViewDetails(sUuid) {
  var oFrm = document.forms.fSubmit;
  if (oFrm && oFrm.command && oFrm.uuid) {
    oFrm.command.value = "viewdetails"; oFrm.uuid.value = sUuid;
    oFrm.target = "_blank"; oFrm.submit();
  }
}

// view a map
function cmnViewMap(sServer,sService,isWMS,isDefault,minx,miny,maxx,maxy) {
    return addToArcExplorerWeb(sServer,sService,isWMS,minx,miny,maxx,maxy);
}

//add the map service to map viewer
function addToArcExplorerWeb(server, service, isWMS, minx,miny,maxx,maxy) {
	// do not change the window name!
	var windowName = "GOSArcExplorerWeb";

	// first open the window
	var ArcExplorerWin;
/* commented out by Az041208 in order to avoid 2 MapViewer windows opened
	if (pIsWin) {
		ArcExplorerWin = window.open('',windowName,"toolbar=no,resizable=yes,width=800,height=564,left=5,top=5");
	} else if (!pIsWin && pIsNS){
		ArcExplorerWin = window.open("",windowName,"toolbar=no,resizable=yes,width=800,height=564,screenX=5,screenY=5");
	} else if (!pIsWin && pIsIE){
		ArcExplorerWin = window.open('',windowName,"toolbar=no,resizable=yes,width=784,height=548,left=5,top=5");
	} else {
		ArcExplorerWin = window.open('',windowName,"toolbar=no,resizable=yes,width=800,height=564");
	}
*/
// if remote then +"&addremote=true"
	var theUrl = pDomainPfx+"/ar_arcexplorer/arcexplorer.html?origid="+origid;
       // var theUrl = "http://venuk:8086"+"/arcexplorer/arcexplorer.html?origid="+origid;

	if (!isWMS)
		theUrl += "&server=" + escape(server) + "&service=" + service;
	else
		theUrl += "&wmsserver=" + escape(server);

	if (minx && miny && maxx && maxy)
			theUrl += "&minx="+minx+"&miny="+miny+"&maxx="+maxx+"&maxy="+maxy;
	//else
	//	theUrl += "&minx="+initMinx+"&miny="+initMiny+"&maxx="+initMaxx+"&maxy="+initMaxy;

	 //--if the window is opened, use session
// commented out by Az041208
//	if (!ArcExplorerWin.closed && ArcExplorerWin.Map) {
		theUrl += "&usesession=true";
//	}
        //alert("theUrl="+theUrl);
	// do not change the window size!
	if (pIsWin) {
		ArcExplorerWin = window.open(theUrl,windowName,"toolbar=no,resizable=yes,width=800,height=564,left=5,top=5");
	} else if (!pIsWin && pIsNS){
		ArcExplorerWin = window.open("",windowName,"toolbar=no,resizable=yes,width=800,height=564,screenX=5,screenY=5");
		ArcExplorerWin.location = theUrl;
	} else if (!pIsWin && pIsIE){
		ArcExplorerWin = window.open(theUrl,windowName,"toolbar=no,resizable=yes,width=784,height=548,left=5,top=5");
	} else {
		ArcExplorerWin = window.open(theUrl,windowName,"toolbar=no,resizable=yes,width=800,height=564");
	}
	ArcExplorerWin.focus();
}

function openSavedMap(linkId)
{
   var winMap;
   var sName = "GOSArcExplorerWeb";
   var ArcExplorerWin;
   var sInfo = "toolbar=no,width=800,height=564";
   if (getCookie("PortalToolKitUserID") == null) {
     alert("User has been disconnected ..."); return;
   }
   if (pIsWin)
    sInfo = "toolbar=no,width=800,height=564,left=5,top=5";
   else if (!pIsWin && pIsNS)
    sInfo = "toolbar=no,width=800,height=564,screenX=5,screenY=5";
   else if (!pIsWin && pIsIE)
    sInfo = "toolbar=no,width=784,height=548,left=5,top=5";
   //winMap = window.open('',sName,sInfo);
   //if (!winMap.closed && winMap.Map ) {
          var theUrl = pDomainPfx+"/ar_arcexplorer/arcexplorer.html?origid="+origid+"&link="+linkId;
          winMap =  window.open(theUrl,sName,sInfo);
  // }else{
  //  winMap.close(); alert("The Map Viewer is not currently open.");
  //}
}

function getCookie(name){
   var cname = name + "=";
   var dc = document.cookie;
   if (dc.length > 0) {
        begin = dc.indexOf(cname);
        if (begin != -1) {
            begin += cname.length;
            end = dc.indexOf(";", begin);
            if (end == -1) end = dc.length;
            return unescape(dc.substring(begin, end));
         }
   }
   return null;
}

function setCookie(name, value) {
    var now = new Date();
    var then = "-1"
    document.cookie = name + "=" + escape(value) + "; expires=-1; path=/";
}

function deleteSessionCookies() {
  var expiration_date = new Date();
   expiration_date.setTime(expiration_date.getTime());
   document.cookie = "PortalToolKitUserID=deleted" + "; expires=" + expiration_date.toGMTString() + ";path=/";
   document.cookie = "PortalToolKitUserRole=deleted" + "; expires=" + expiration_date.toGMTString() + ";path=/";
   document.cookie = "PortalToolKitChnMgtRole=deleted" + "; expires=" + expiration_date.toGMTString() + ";path=/";
   document.cookie = "EsriPortalToolKit2004=deleted" + "; expires=" + expiration_date.toGMTString() + ";path=/";

}
// Function to switch Language
function switchLanguage(){
  alert('hi mahmoud');
  var oFrm = document.forms.fSubmit;
  oFrm.submit();
}
