/****************************************
On load
*****************************************/
function WinOnload(func)
{
    if (arguments.length>1)
        func.apply(this, new Array(arguments[1]));
    if (window.attachEvent) {window.attachEvent('onload', func);}
    else if (window.addEventListener) {window.addEventListener('load', func, false);}
    else {document.addEventListener('load', func, false);} 
}
/****************************************
On load
*****************************************/

/****************************************
This is property of NSN-NOW.com by Waqar.
****************************************/
function stripSpecialFromValue(objValue,except)
{
    var def='[^a-zA-Z0-9'+(except!=null?except:'')+']';
    var re = new RegExp(def, 'g');
    return objValue.replace(re,'');
}
function confirmDDL(object,type)
{
    var value=type==0?object.options[object.selectedIndex].value:object.options[object.selectedIndex].text;
    var vconfirm=confirm('Are you sure you want to select: ' + value + '.');
    return vconfirm;
}
function FillDropDownList(xmlDoc,ddlobj,text,value)
{
    xmlDoc = xmlDoc.childNodes[0];
    var columnCount = xmlDoc.childNodes[0].childNodes.length;
    var rowCount = xmlDoc.childNodes.length
    var columns4Value = 0;
    var columns4Text = 0;
    for(var i=0;i<columnCount;i++)
    {
        if (xmlDoc.childNodes[0].childNodes[i].nodeName==value)
            columns4Value  = i;
        if (xmlDoc.childNodes[0].childNodes[i].nodeName==text)
            columns4Text  = i;
        
    }
    for(var j=0;j<rowCount;j++)
    {
        var oVal=xmlDoc.childNodes[j].childNodes[columns4Value].firstChild.nodeValue;
        var oText=xmlDoc.childNodes[j].childNodes[columns4Text].firstChild.nodeValue;
        addOption(document.getElementById(ddlobj),oText,oVal);
    }
}

function addOption(selectbox,text,value )
{
    var optn = document.createElement("OPTION");
    optn.text = text;
    optn.value = value;
    selectbox.options.add(optn);
}

function loadXmlDocFromString(xmlData)
{
    if (window.ActiveXObject) 
    {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(xmlData);
        return xmlDoc;
    }  
    else
    {
        parser=new DOMParser();
		xmlDoc=parser.parseFromString(xmlData,"text/xml");
		return xmlDoc;
    }
}

function ConvertToTable(targetNode)
{
    targetNode = targetNode.childNodes[0];
    var columnCount = targetNode.childNodes[0].childNodes.length;
    var rowCount = targetNode.childNodes.length
    var t = document.createElement("table");
    var tb=document.createElement("tbody");
    var tr = document.createElement("tr");

    for(var i=0;i<columnCount;i++)
    {
		var td = document.createElement("td");
		td.innerHTML=targetNode.childNodes[0].childNodes[i].nodeName;             
        tr.appendChild(td);
    }
	tb.appendChild(tr);
    for(var i2=0;i2<rowCount;i2++)
    {
        var tr = document.createElement("tr");
         for(var j=0;j<columnCount;j++)
         {
		    var td = document.createElement("td");
		    td.innerHTML=targetNode.childNodes[i2].childNodes[j].firstChild.nodeValue;
            tr.appendChild(td);
         }
		tb.appendChild(tr);
    }
	t.appendChild(tb);
    return getOuterHTML(t);
}


function getOuterHTML(object) 
{
    var element;
    if (!object) return null;
    element = document.createElement("div");
    element.appendChild(object.cloneNode(true));
    return element.innerHTML;
}  


/*************************
Match Pattern in HTML Page
*************************/
function MatchNSNPattern(nsn)
{
    if (typeof nsn=='string')
    {
        var CBodyContent=document.body.innerHTML;
        var Rex = new RegExp("\\d{4}-\\d{2}-\\d{3}-\\d{4}","g");
        var NSN = new Array();
        var Vloop=0;
        do
        {
            var Matches = Rex.exec(document.body.innerHTML);
            if (Matches!=null)
            {
                if (Matches[0].replace(/-/g,'')!=nsn)
                {
                    if (NSN.toString().search(Matches[0])==-1)
                    {
                        NSN[Vloop]=Matches[0];
                        Vloop++;
                    }
                }    
            }
        }
        while(Matches!=null)
        for(var i=0;i<NSN.length;i++)
        {
            $('body').removeHighlight().Txt2Link(NSN[i]);
        } 
    }
}
function MatchNSNPatternObject(objVal,nsn)
{
    var CBodyContent=objVal;
    var Rex = new RegExp("\\d{4}-\\d{2}-\\d{3}-\\d{4}","g");
    var NSN = new Array();
    var Vloop=0;
    do
    {
        var Matches = Rex.exec(objVal);
        if (Matches!=null)
        {
            if (Matches[0].replace(/-/g,'')!=nsn)
            {
                if (NSN.toString().search(Matches[0])==-1)
                {
                    NSN[Vloop]=Matches[0];
                    Vloop++;
                }
            }
        }
    }
    while(Matches!=null)
    for(var i=0;i<NSN.length;i++)
        CBodyContent=CBodyContent.replace(eval('/' + NSN[i] + '/g'),('<a href="/detail/summary.aspx?nsn='+NSN[i].replace(/-/g,'')+'"><font color=blue><b>'+NSN[i]+'</b></font></a>'));
    return CBodyContent;
}
/*************************
Match Pattern in HTML Page
*************************/

/******************
WEB Service Related
******************/

function OnTimeOut(args) 
{
    alert("Service call timed out.");
}
function OnError(args) 
{
    alert("Error calling service method.");
}

/******************
WEB Service Related
******************/

function pageHeight()
{
    var height=0;
    if (document.body.scrollHeight)
        height=document.body.scrollHeight>height?document.body.scrollHeight:height;
    if (document.documentElement.clientHeight)
        height=document.documentElement.clientHeight>height?document.documentElement.clientHeight:height;
    if (window.innerHeight)
        height=window.innerHeight>height?window.innerHeight:height;
    return height;

    return vIE()>=6?document.body.scrollHeight:document.documentElement && document.documentElement.clientHeight ?
    document.documentElement.clientHeight : document.body != null?
    document.body.clientHeight : window.innerHeight != null ? window.innerHeight : null;
}
function pageWidth()
{
    return vIE()>=6?document.body.scrollWidth:document.documentElement && document.documentElement.clientWidth ?
    document.documentElement.clientWidth : document.body != null?
    document.body.clientWidth : window.innerWidth != null ? window.innerWidth : null;
}                
function vIE(){return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;} 
function selectBoxes(status)
{
    var s = document.getElementsByTagName("select");
    for(var i=0;i<s.length;i++)
        s[i].style.display=status?"none":"block";
}
var BrowserWidth = 0, BrowserHeight = 0;
function GetBrowserSize() 
{
    if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
    {
        //IE 6+ in 'standards compliant mode'
        BrowserWidth = document.documentElement.clientWidth;
        BrowserHeight = document.documentElement.clientHeight;
        alert(BrowserHeight);
    } 
    else if(( document.body && ( document.body.clientWidth || document.body.clientHeight )) || vIE()>=6) 
    {
        //IE 4 compatible
        BrowserWidth = document.body.clientWidth;
        BrowserHeight = document.body.clientHeight;
        alert(BrowserHeight);
    }
    else if( typeof( window.innerWidth ) == 'number' ) 
    {
        //Non-IE
        BrowserWidth = window.innerWidth;
        BrowserHeight = window.innerHeight;
    }             
}


/*****WAWF Validation*****/
function UpSize(object)
{
    object.value = object.value.toUpperCase();
}

function checkDate(dateField,Mandatory,showError)
{
    var monTest=/01|02|03|04|05|06|07|08|09|10|11|12/;
    var Test30=/04|06|09|11/;
    var year=dateField.value.substr(0,4);
    var mon=dateField.value.substr(5,2);
    var day=dateField.value.substr(8,2);

    var returnMsg=''
    if (dateField.value.length > 0)
    {
        var re = /^(\d{4})[\/](\d{2})[\/](\d{2})$/;
        if(!re.test(dateField.value))
        {
            returnMsg = "Date format must be YYYY/MM/DD." ;
            if (showError==0)
            {
                return returnMsg;
            }    
            else
            {
                ErrHighlite(dateField,true);
                window.alert(returnMsg);
                return false;
            }    
        }
        else if ((dateField.value.length == 10) &&
                ((monTest.test(mon)==false) ||
                (day > 31) || (day < 1)) ||
                ((Test30.test(mon)) && (day==31)) ||
                ((mon==02) && ((day==30) || (day==31))) ||
                ((mon==02) && (day==29) && ((year%4!=0) || ((year%100==0) && (year%400!=0)))))
        {
            returnMsg = "The entered Date is invalid.";
            if (showError==0)
            {
                return returnMsg;
            }
            else
            {
                ErrHighlite(dateField,true);
                window.alert(returnMsg);
                return false;
            }    
        }
        else if ((year < 1900) || (year > 2099))
        {
            if(sPrev != dateField.value)
                returnMsg = "The entered Year is invalid.";
            if (showError==0)
            {
                return returnMsg;
            }
            else
            {
                ErrHighlite(dateField,true);
                window.alert(returnMsg);
                return false;
            }    
        }
    }
    else if (Mandatory==1)
    {
        returnMsg = "The entered Date is invalid.";
        if (showError==0)
        {
            return returnMsg;
        }
        else
        {
            ErrHighlite(dateField,true);
            window.alert(returnMsg);
            return false;
        }    
    }
    ErrHighlite(dateField,false);      
    if (showError==0)
        return returnMsg;
    else
        return true;
}

 function stripSpecial(input)
 {
    var s = input.value;
    var validValues = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {  // Search through string and only allow valid values to returnString.
       var c = s.charAt(i);
       if (validValues.indexOf(c) > -1) returnString += c;
    }
    input.value = returnString;
 }

 function stripUIDSpecial(input)
 {
    var s = input.value;
    var validValues = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"%&\'()*+,-./:;<=>?_";
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {  // Search through string and only allow valid values to returnString.
       var c = s.charAt(i);
       if (validValues.indexOf(c) > -1) returnString += c;
    }
    input.value = returnString;
 }

 
function stripNumber(input)
{
   s = input.value;
   validValues = "0123456789";
   var i;
   var returnString = "";
   for (i = 0; i < s.length; i++)
   {  // Search through string and only allow valid values to returnString.
      var c = s.charAt(i);
      if (validValues.indexOf(c) > -1) returnString += c;
   }
   input.value = returnString;
}

function stripNumberValue(input)
{
   s = input;
   validValues = "0123456789\"";
   var i;
   var returnString = "";
   for (i = 0; i < s.length; i++)
   {
      var c = s.charAt(i);
      if (validValues.indexOf(c) > -1) returnString += c;
   }
   return returnString;
}


function stripDecimalNumber(input)
{
   s = input.value;
   validValues = "0123456789.";
   var i;
   var returnString = "";
   for (i = 0; i < s.length; i++)
   {  // Search through string and only allow valid values to returnString.
      var c = s.charAt(i);
      if (validValues.indexOf(c) > -1) returnString += c;
   }
   input.value = returnString;
}

function stripCommaDecimalNumber(input)
{
    s = input.value;
    isNegative = hasNegativeSign(s);
    validValues = "0123456789.,";
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if(validValues.indexOf(c) > -1) returnString += c;
    }

    if(s.indexOf('.') > -1)
    {
        dollarValue = returnString.substring(0, returnString.indexOf('.')+1)
        decimalValue = returnString.substring(returnString.indexOf('.')+1, returnString.length);
        validValues = "0123456789";
        var goodDecimalString = "";
        for (i = 0; i < decimalValue.length; i++)
        { 
            var c = decimalValue.charAt(i);
            if(validValues.indexOf(c) > -1) goodDecimalString += c;
        }
        returnString = dollarValue + goodDecimalString;
    }
    if(isNegative)
        returnString = "-" + returnString;
    input.value = returnString;
}

function hasNegativeSign(s)
{
   if(s.length > 0 && s.charAt(0) == '-')
       return true;
   else
       return false;
}

function formatCommaDecimalNumber(input)
{
    s = input.value;
    var dollarValue = "";
    var decimalValue = "";
    var returnString = "";
    if(s.length > 0 && s != "NSP")
    {
        var i;
        s = stripCommaFromNumber(s);
        isNegative = hasNegativeSign(s);
        if(isNegative)
        {
            s = s.substring(1, s.length);
        }

        if(s.indexOf('.') > -1)
        {
            dollarValue = s.substring(0, s.indexOf('.'));
            decimalValue = s.substring(s.indexOf('.')+1, s.length);
        }
        else
            dollarValue = s;

        var zeros = 0;
        for (i = 0; i < dollarValue.length; i++)
        {
            if(dollarValue.charCodeAt(i) == 48)
                zeros = zeros + 1;
            else
                break;
        }
        dollarValue = dollarValue.substring(zeros, dollarValue.length);
        dollarValue = '' + dollarValue;
        if(dollarValue.length > 3)
        {
            var mod = dollarValue.length % 3;
            var output = (mod > 0 ? (dollarValue.substring(0,mod)) : '');
            for(i=0 ; i<Math.floor(dollarValue.length/3); i++)
            {
                if((mod == 0) && (i == 0))
                    output += dollarValue.substring(mod+ 3 * i, mod + 3 * i + 3);
                else
                    output+= ',' + dollarValue.substring(mod + 3 * i, mod + 3 * i + 3);
            }
            dollarValue = output;
        }
        if(dollarValue.length == 0)
            dollarValue = "0";
        if(decimalValue.length > 0)
            returnString = dollarValue + "." + decimalValue;
        else
            returnString = dollarValue;
        if(isNegative)
            returnString = "-" + returnString;
        input.value = returnString;
    }
}

function formatCommaDecimalNumberValue(input)
{
    s = input;
    var dollarValue = "";
    var decimalValue = "";
    var returnString = "";
    if(s.length > 0 && s != "NSP")
    {
        var i;
        s = stripCommaFromNumber(s);
        isNegative = hasNegativeSign(s);
        if(isNegative)
        {
            s = s.substring(1, s.length);
        }

        if(s.indexOf('.') > -1)
        {
            dollarValue = s.substring(0, s.indexOf('.'));
            decimalValue = s.substring(s.indexOf('.')+1, s.length);
        }
        else
            dollarValue = s;

        var zeros = 0;
        for (i = 0; i < dollarValue.length; i++)
        {
            if(dollarValue.charCodeAt(i) == 48)
                zeros = zeros + 1;
            else
                break;
        }
        dollarValue = dollarValue.substring(zeros, dollarValue.length);
        dollarValue = '' + dollarValue;
        if(dollarValue.length > 3)
        {
            var mod = dollarValue.length % 3;
            var output = (mod > 0 ? (dollarValue.substring(0,mod)) : '');
            for(i=0 ; i<Math.floor(dollarValue.length/3); i++)
            {
                if((mod == 0) && (i == 0))
                    output += dollarValue.substring(mod+ 3 * i, mod + 3 * i + 3);
                else
                    output+= ',' + dollarValue.substring(mod + 3 * i, mod + 3 * i + 3);
            }
            dollarValue = output;
        }
        if(dollarValue.length == 0)
            dollarValue = "0";
        if(decimalValue.length > 0)
            returnString = dollarValue + "." + decimalValue;
        else
            returnString = dollarValue;
        if(isNegative)
            returnString = "-" + returnString;
        return returnString;
    }
}

function stripCommaFromNumber(s)
{
    validValues = "-0123456789.";
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    { 
        var c = s.charAt(i);
        if (validValues.indexOf(c) > -1) returnString += c;
    }
    return returnString;
}

 function stripFromInput(input,except)
 {
    var s = input.value;
    var def='[^a-zA-Z0-9!\"%&()*+,-./_'+(except!=null?except:'')+']';
    var re = new RegExp(def, 'g');
    input.value=s.replace(re,'');
/*
    var s = input.value;
    var validValues = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"%&()*+,-./_";
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {
       var c = s.charAt(i);
       if (validValues.indexOf(c) > -1) returnString += c;
    }
    input.value = returnString;
*/    
 }
 function stripFromInputExceptNum(input,except)
 {
    var s = input.value;
    var def='[^0-9-'+(except!=null?except:'')+']';
    var re = new RegExp(def, 'g');
    input.value=s.replace(re,'');
 }
 
/*************************/

function GetWidth()
{
	var x = 0;
	if (self.innerHeight){x = self.innerWidth;}
	else if (document.documentElement && document.documentElement.clientHeight){x = document.documentElement.clientWidth;}
	else if (document.body){x = document.body.clientWidth;}
	return x;
}

function GetHeight()
{
	var y = 0;
	if (self.innerHeight){y = self.innerHeight;}
	else if (document.documentElement && document.documentElement.clientHeight){y = document.documentElement.clientHeight;}
	else if (document.body){y = document.body.clientHeight;}
	return y;
}
