﻿// JScript File

function popup(url, ext_url, w, h, scrollable){
	var popup, left, top, setting;
	left=screen.width?(screen.width-w)/2:0;
	top=screen.width?(screen.height-h)/2:0;
	
	setting="width=" + w + ",height=" + h + ", scrollbars=" + scrollable + ", dependent=yes, " + "top=" + top + ",left=" + left + "'";
	popup = window.open("","test",setting);
	popup.location.href=url + ext_url;
	if (popup.opener == null) { 
   		popup.opener = self; 
	}	
}

function popup_resize( url, w, h)
{
    var left, top;
	left=screen.width?(screen.width-w)/2:0;
	top=screen.width?(screen.height-h)/2:0;
    window.open( url, "popup", "fullscreen=no, toolbar=no, menubar=no, width=" + w + ", height=" + h + ", resizable=yes, top=" + top +  ", left=" + left + ", scrollbars=yes");
}

<!--
    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];}
    }
//-->
//////////////////////////////////////
function checkEmail(str)
{		
	if (str.indexOf("@")==-1 || str.charAt(0)=="@" || str.indexOf(".")==-1 || str.charAt(0)=="." || str.charAt(str.indexOf("@")+1)=="." )
		return 0;
	else
		return 1;		
}

function emailCheck (emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) {
		alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];

	if (user.match(userPat)==null) {
		alert("The username doesn't seem to be valid.");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
		        alert("Destination IP address is invalid!");
				return false;
			}
		}
		return true;
	}

	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("The domain name doesn't seem to be valid.");
	    return false;
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || 
		domArr[domArr.length-1].length>3) {

		alert("The address must end in a three-letter domain, or two letter country.");
		return false;
	}

	if (len<2) {
		var errStr="This address is missing a hostname!";
		alert(errStr);
		return false;
	}

	return true;
}
function checkValidDate(dateStr) {
    // dateStr must be of format month day year with either slashes
    // or dashes separating the parts. Some minor changes would have
    // to be made to use day month year or another format.
    // This function returns True if the date is valid.
    var slash1 = dateStr.indexOf("/");
    if (slash1 == -1) { slash1 = dateStr.indexOf("-"); }
    // if no slashes or dashes, invalid date
    if (slash1 == -1) { return false; }
    var dateMonth = dateStr.substring(0, slash1)
    var dateMonthAndYear = dateStr.substring(slash1+1, dateStr.length);
    var slash2 = dateMonthAndYear.indexOf("/");
    if (slash2 == -1) { slash2 = dateMonthAndYear.indexOf("-"); }
    // if not a second slash or dash, invalid date
    if (slash2 == -1) { return false; }
    var dateDay = dateMonthAndYear.substring(0, slash2);
    var dateYear = dateMonthAndYear.substring(slash2+1, dateMonthAndYear.length);
    if ( (dateMonth == "") || (dateDay == "") || (dateYear == "") ) { return false; }
    // if any non-digits in the month, invalid date
    for (var x=0; x < dateMonth.length; x++) {
        var digit = dateMonth.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text month to a number
    var numMonth = 0;
    for (var x=0; x < dateMonth.length; x++) {
        digit = dateMonth.substring(x, x+1);
        numMonth *= 10;
        numMonth += parseInt(digit);
    }
    if ((numMonth <= 0) || (numMonth > 12)) { return false; }
    // if any non-digits in the day, invalid date
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text day to a number
    var numDay = 0;
    for (var x=0; x < dateDay.length; x++) {
        digit = dateDay.substring(x, x+1);
        numDay *= 10;
        numDay += parseInt(digit);
    }
    if ((numDay <= 0) || (numDay > 31)) { return false; }
    // February can't be greater than 29 (leap year calculation comes later)
    if ((numMonth == 2) && (numDay > 29)) { return false; }
    // check for months with only 30 days
    if ((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) { 
        if (numDay > 30) { return false; } 
    }
    // if any non-digits in the year, invalid date
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        if ((digit < "0") || (digit > "9")) { return false; }
    }
    // convert the text year to a number
    var numYear = 0;
    for (var x=0; x < dateYear.length; x++) {
        digit = dateYear.substring(x, x+1);
        numYear *= 10;
        numYear += parseInt(digit);
    }
    // Year must be a 2-digit year or a 4-digit year
    if ( (dateYear.length != 2) && (dateYear.length != 4) ) { return false; }
    // if 2-digit year, use 50 as a pivot date
    if ( (numYear < 50) && (dateYear.length == 2) ) { numYear += 2000; }
    if ( (numYear < 100) && (dateYear.length == 2) ) { numYear += 1900; }
    if ((numYear <= 0) || (numYear > 9999)) { return false; }
    // check for leap year if the month and day is Feb 29
    if ((numMonth == 2) && (numDay == 29)) {
        var div4 = numYear % 4;
        var div100 = numYear % 100;
        var div400 = numYear % 400;
        // if not divisible by 4, then not a leap year so Feb 29 is invalid
        if (div4 != 0) { return false; }
        // at this point, year is divisible by 4. So if year is divisible by
        // 100 and not 400, then it's not a leap year so Feb 29 is invalid
        if ((div100 == 0) && (div400 != 0)) { return false; }
    }
    // date is valid
    return true;
}

function IsNumeric(ch){

	if (ch=="0"||ch=="1"||ch=="2"||ch=="3"||ch=="4"||ch=="5"||ch=="6"||ch=="7"||ch=="8"||ch=="9"||ch=="."||ch==",")
		return 1;
	else
		return 0;
}

function IsNumeric1(ch){

	if (ch=="0"||ch=="1"||ch=="2"||ch=="3"||ch=="4"||ch=="5"||ch=="6"||ch=="7"||ch=="8"||ch=="9"||ch==".")
		return 1;
	else
		return 0;
}

function IsNumber(str){
	var i, ch;
	
	for (i=0; i<str.length; i++){
	
		ch = str.substring(i,i+1);
		if (!IsNumeric(ch)){
			return 0;
		}	
	}
	return 1;
}
//-----------TRIM (String)----------------
 String.prototype.trim = function() {
            a = this.replace(/^\s+/, '');
            return a.replace(/\s+$/, '');
        };
//-----------CUSTOM TOOLTIP----------------

function ShowToolTip(event)
	{
		//get windows event:
		if ((typeof event == "undefined")||(!event))
			event = window.event;
		
		//get container:
		var objContainer=document.getElementById(_tooltipContainerName);
		
		//get source element:
		var objSource=event.srcElement||event.target;
		
		//abort if no source available:
		if ((typeof objSource == "undefined")||(!objSource))
			return false;
		
		//create if does not exist:
		if (!objContainer)
		{
			objContainer = document.createElement("div");
			objContainer.id = _tooltipContainerName;
			objContainer.style.backgroundColor = _tooltipBgColor;			
			objContainer.style.border= _tooltipBorder;
			objContainer.style.fontSize = _tooltipFontSize;
			//objContainer.style.color = _tooltipTextColor;
			//objContainer.style.fontFamily = _tooltipFontFamily;
			
			if (_tooltipFontBold)
				objContainer.style.fontWeight = "bold";
			objContainer.style.position = "absolute";
			objContainer.style.display = "none";
			document.body.appendChild(objContainer);
		}
		
		//get mouse position:
		var mouseX=event.x||event.pageX;
		var mouseY=event.y||event.pageY;
		
		//get body scroll:
		var scrollX=document.body.scrollLeft;
		var scrollY=document.body.scrollTop;
		
		//set container position:
		objContainer.style.left = (mouseX+scrollX)+"px";
		objContainer.style.top = (mouseY+scrollY)+"px";
		
		//read tooltip text:
		var strText=(objSource.attributes["tooltip_v1"])?objSource.attributes["tooltip_v1"].value:"";
		
		//verify we have something to display:
		if (strText.length == 0)
			return false;
		
		//set container text:
		objContainer.innerHTML = strText;
		
		//show container:
		setTimeout("_ShowTooltipContainer();", _tooltipPauseBeforeShow);
		
		//set timer if needed:
		if (_tooltipDelay > 0)
			setTimeout("HideToolTip();", _tooltipDelay*1000);
		
		return true;
	}
	
	
	function HideToolTip(event)
	{
		//get container:
		var objContainer=document.getElementById(_tooltipContainerName);
		if (objContainer)
		{
			objContainer.style.display = "none";
		}
	}
	
	function _ShowTooltipContainer()
	{
		//get container:
		var objContainer=document.getElementById(_tooltipContainerName);
		
		if (objContainer)
		{
			objContainer.style.display = "block";
		}
	}