/*********************************************************************************************
* Script Name                 : menu.js
* Project Version             : 2.0
* Exchange                    : BSE&NSE
* Description                 : common Javascript  functions and variables
*
************************************************************************************************/

function ValidPriceSP(num)
{
   
    if(num.indexOf(".")>7)
    {
       	return false;
    }
    else if(num.indexOf(".")==-1 && num.length>7)
    {
     	return false;
    }
    else if(Math.round(num*10000)==NaN )
    {
   		return false;
    }
    else
    {
        return true;
    }
}
//***********************Numeric validation***********************
function Valid(num)
{
    var inputStr=num;
    for(var i=0;i<inputStr.length;i++)
    {
        var oneChar=inputStr.substring(i,i+1)
        if(oneChar < "0" || oneChar > "9" )
        {
            return false;
        }
    }
    return true
}
function ValidQuantity(num)
{
    var inputStr=num;
    for(var i=0;i<inputStr.length;i++)
    {
        var oneChar=inputStr.substring(i,i+1)
        if(oneChar < "0" || oneChar > "9" )
        {
			if(oneChar=="-")
			{}
			else
			{
            	return false;
        	}
        }
    }
    return true
}

//***********************End Numeric validation***********************

//***********************price Validation***********************
function ValidPrice(num)
{
   
    if(num.indexOf(".")>7)
    {
       
       	return false;
    }
    else if(num.indexOf(".")==-1 && num.length>7)
    {
       
     	return false;
    }
    else if(Math.round(num*100)==NaN || Math.round(num*100)<=0)
    {
       
   		return false;
    }
    else if(Math.round(num*100)%5!=0)
    {
       
      	return false;
    }
    else
    {
       
        return true;
    }
}

function ValidBSEPrice(num)
{

    if(num.indexOf(".")>7)
    {
        return false;
    }
    else if(num.indexOf(".")==-1 && num.length>7)
    {
        return false;
    }
    else if(Math.round(num*100)==NaN || Math.round(num*100)<=0)
    {
        return false;
    }
    /*else if(Math.round(num*100)%5!=0)
    {
        return false;
    }*/
    else
    {

        return true;
    }


}

//***********************End of price Validation***********************

//************************Following code is forDate Validation***********************

function CheckDate(newValue) //Date validation starts here
{
    var strErr=0
    strDate = ""
    startdate=newValue;
    for (i=0;i < startdate.length;i++)
    {
        if(startdate.charAt(i) == " ")
        {
        }
        else
        {
            strDate= strDate+startdate.charAt(i);
        }
    }
    var temdate = new Array()
    var temp=""
    var k=0
    var strDay=0
    var strMonth=0
    var strYear=0
    datelen = strDate.length
    for(j=0;j<datelen;j++)
    {
        c=strDate.charAt(j)
        if (((c >= "0") &&  (c <= "9"))||(c == "/"))
        {
            strErr=0;
        }
        else
        {
            strErr=1;
            break;
        }
        if((strDate.charAt(j) == "/"))
        {
            if(k == 0)
            {
                strDay=temp;
                temp=""
            }
            if(k == 1)
            {
                strMonth=temp;
                temp=""
            }
            k++
        }
        else
        {
            temp += strDate.charAt(j)
        }
    }
    strYear=temp;
    //basic error checking
    if (strDay<1 || strDay>31) strErr = 1
        
    if (strMonth<1 || strMonth>12) strErr = 1
        
    if (strYear<1971 || strYear>2050) strErr = 1
        
    //advanced error checking --  months with 30 days
    if (strMonth==4 || strMonth==6 || strMonth==9 || strMonth==11)
    {
        if (strDay==31) strErr=1
            }
        // february, leap year
        if (strMonth==2)
        {
            // feb
            var strValiMonth=parseInt(strYear/4)
            if (isNaN(strValiMonth))
            {
                strErr=1
            }
            if (strDay>29) strErr=1
                
            if (strDay==29 && ((strYear/4)!=parseInt(strYear/4))) strErr=1
                
        }

        if(startdate.value == "") strError=1;

        if (strErr==1)
        {

            return false;
        }
        else
        {
            return true;
        }

    }
    //Date validation ends here


    //Browser font Compatibility

    var noSerSet="--"

    //************************End of code is for Date Validation***********************

    //************************Following code is for Disabling Hot Keys*****************
    /*net = (document.layers) ? 1:0;
                ie = (document.all) ? 1:0 ;
                function hidemenu(e)
                {
                    if(ie)
                    {
                        if(event.button == 2)
                        {
                            alert("www.otndirect.com");
                            //alert("Your Strategic E Trading Partner");
                            // alert("www.otndirect.com");
                            return false;
                        }
                    }
                    if(net)
                    {
                        if(e.which == 3)
                        {
                            alert("www.otndirect.com");
                            //alert("www.otndirect.com");
                            return false;
                        }
                    }
                }

                function showkey(e)
                {
                    if(ie)
                    {
                        if(event.keyCode == 93)
                        {
                            alert("www.otndirect.com");
                        }
                    }
                }

                document.onmousedown=hidemenu;
                document.onkeydown=showkey;

                function checkFrame()
                {
                    if(window.parent.frames.length >1)
                    {
                    }
                    else
                    {
                        location.href="http://www.otndirect.com"
                    }
                }*/

    //************************End of code   for Disabling Hot Keys************************

    var not_msg ="Currently this facility is not Available"

    var finalLocation="";

    //************************Following Lines are  date fields for the Order History*******


    var today=new Date()
    var date=today.getDate()
    var month=today.getMonth()
    month1=month+1;
    var year=today.getFullYear()

    fulldate=date+ "/"+month1 + "/" +year
	fulldate1 = month1 + "/" + date+ "/"+ year
    var todayInMS=today.getTime()

    var prevWeekInMS=todayInMS-(60*60*24*7*1000)
    var prevdate= new Date(prevWeekInMS)
    var prevdate1=prevdate.getDate()
    var prevMonthOrigin=prevdate.getMonth()
    var prevMonth=prevdate.getMonth()
    var prevMonth=prevMonth+1;
    var prevYear=prevdate.getFullYear()
    prevfulldateOrigin=prevdate1 + "/" + prevMonthOrigin + "/" + prevYear
    prevfulldate=prevdate1 + "/" + prevMonth + "/" + prevYear

    //************************End of date fields for the Order History************************

    //************************Following Lines are  Failed Order*******
    function OrderFailed(status)
    {
        switch(status)
        {
            case 1:
                return "Sent to so for validation ";
                break;

            case 3:
                return "Sent to ho for validation";
                break;

            case 5:
                return "Sent to Exchange";
                break;
            case 6:
                return "Exchange Approved - Open Order with Exchange";
                break;

            case 8:
                return "Fully Traded";
                break;
            case 9:
                return "Lapsed";
                break;
            case 10:
                return "Cancelled";
                break;
            case 11:
                return "Modified";
                break;
            case 13:
                return "Untriggered Stop Loss Order";
                break;
            case 14:
                return "Lapsed Order";
                break;
            default:
                break;
        }
    }
    //************************end of  Failed Order*******

    //***************************** Excahge specific Global Variables


 //  BSESerSetVal=new Array("A","B1","B2","S","T","TS","Z");
  //  BSESerSetTxt=new Array("A","B1","B2","S","T","TS","Z");

  //  NSESerSetVal=new Array("EQ","BE","E2");
  //  NSESerSetTxt=new Array("EQ","BE","E2");
    

//	BSESerSetMWVal=new Array("ALL","A","B1","B2","S","T","TS","Z");
  //  BSESerSetMWTxt=new Array("ALL","A","B1","B2","S","T","TS","Z");

    //NSESerSetMWVal=new Array("ALL","EQ","BE","E2");
   // NSESerSetMWTxt=new Array("ALL","EQ","BE","E2");
	

    

  BSESerSetVal=new Array("A","B","S","T","TS","Z");
  BSESerSetTxt=new Array("A","B","S","T","TS","Z");

  NSESerSetVal=new Array("EQ","BE","E2");
 NSESerSetTxt=new Array("EQ","BE","E2");
    

	BSESerSetMWVal=new Array("ALL","A","B","S","T","TS","Z");
  BSESerSetMWTxt=new Array("ALL","A","B","S","T","TS","Z");

  NSESerSetMWVal=new Array("ALL","EQ","BE","E2");
  NSESerSetMWTxt=new Array("ALL","EQ","BE","E2");

    


    var whitespace = " \t\n\r";
    var defaultEmptyOK = false
    function isEmpty(s)
    {
        return ((s == null) || (s.length == 0))
    }
    function isWhitespace (s)

    {
        var i;

        if (isEmpty(s)) return true;


        for (i = 0; i < s.length; i++)
        {
            var c = s.charAt(i);

            if (whitespace.indexOf(c) == -1) return false;
        }


        return true;
    }

    /*Email validation*/
    function isEmail (s)
    {
        if (isEmpty(s))
            if (isEmail.arguments.length == 1) return defaultEmptyOK;
        else return (isEmail.arguments[1] == true);

        if (isWhitespace(s)) return false;

        var i = 1;
        var sLength = s.length;


        while ((i < sLength) && (s.charAt(i) != "@"))
        {
            i++
        }

        if ((i >= sLength) || (s.charAt(i) != "@")) return false;
        else i += 2;


        while ((i < sLength) && (s.charAt(i) != "."))
        {
            i++
        }


        if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
        else return true;
    }

    /*Stripping white spaces from string*/
    var whitespace = " \t\n\r";

    function stripCharsInBag (s, bag)

    {
        var i;
        var returnString = "";

        for (i = 0; i < s.length; i++)
        {
            var c = s.charAt(i);
            if (bag.indexOf(c) == -1) returnString += c;
        }

        return returnString;
    }

    function stripWhitespace (s)
    {
        return stripCharsInBag (s, whitespace)
    }



    function alerter(accid,rec,aort,time,atm,dir,act,evt,val,ex,sym,symname)
    {
       //alert("Hello = accid"+accid+","+rec+","+aort+","+time+","+atm+",dir"+dir+","+act+","+val+",evt"+evt)
        var  at;
        var msg;
        if(aort =="A")
        {
            at = "Alert";
        }
        else if(aort =="T")
        {
            at = "Trigger";
        }

        var dir1;
        if(dir==1)
        {
            dir1 = ">=";
        }
        else
        {
            dir1 = "<=";
        }

        switch(parseInt(evt))
        {
            case 0:
                msg="Index "+at+" fired for ATM no :"+atm+".\n Index "+dir1+" "+val;
                break;
            case 1:
                msg="Security LastTradedPrice "+at+" fired for ATM no :"+atm+".\n LTP of "+symname+" "+dir1+" "+val;
                break;
            case 2:
                msg="PecentageChange "+at+" fired for ATM no :"+atm+".\n PecentageChange of "+symname+""+dir1+" "+val;
                break;
            case 3:
                msg="TotalTraded Volume "+at+" fired for ATM no :"+atm+".\n TotalTradedVolume of "+symname+" "+dir1+" "+val;
                break;
            case 4:
                msg="TotalTraded Value "+at+" fired for ATM no :"+atm+".\n TotalTraded Value of "+symname+" "+dir1+""+val+"(in Lakhs)";
                break;
            case 5:
                msg="WeightedAvgPrice "+at+" fired for ATM no :"+atm+".\n WeightedAvgPrice of "+symname+" "+dir1+" "+val;
                break;
            case 6:
                msg="Personal Trade "+at+" fired for ATM no :"+atm+" for Order No "+val;
                break;
            case 7:
                msg="GrossExposure "+at+" fired for ATM no :"+atm+".\n Exposure "+dir1+" "+val;
                break;
            case 8:
                msg="NetExposure "+at+" fired for ATM no :"+atm+".\n Exposure "+dir1+" "+val;
                break;
            case 9:
                msg="MarkToMarketExposure "+at+" fired for ATM no :"+atm+".\n Exposure "+dir1+" "+val;
                break;
            case 10:
                msg="StopLossTrigger "+at+" fired for ATM no :"+atm+".\n for Order No "
                break;
        }
        alert(msg)
    }





function changeRowColor(i,len)
{
    var color = "yellow";
    var colrArr=new Array("#eeeeee","#ffffff");
    for(var j = 1; j<=len ; j++)
    {
        if(i == j)
        {
            window.document.all['TR'+j].style.background = color;
        }
        else
        {
            window.document.all['TR'+j].style.background = colrArr[j%2];
            //window.document.all['TR'+j].style.background =colrArr[j%2]
        }

    }

}




function validPass(pas)
{
    if(pas=="")
    {
        alert("Please Enter Password ");
        return false;
    }
    else if(isWhitespace(pas))
    {
        alert("password cannot have blank space")
        return false;
    }
    else if(pas.length<6)
    {
        alert("Password length should be minimum 8 and maximum 12")
        return false;
    }
else if(pas.length>12)
    {
        alert("Password length should be minimum 8 and maximum 12")
        return false;
    }
    else
    {
        return true;
    }
}



var dt  = new Date()
var xmlContractFile=dt.getDate()+"-"+(dt.getMonth()+1)+"-"+dt.getYear()+".xml";



function LTrim( value ) {
 
 var re = /\s*((\S+\s*)*)/;
 return value.replace(re, "$1");
 
}

// Removes ending whitespaces
function RTrim( value ) {
 
 var re = /((\s*\S+)*)\s*/;
 return value.replace(re, "$1");
 
}



































    
