//cached file//Merged JS files for homepage ( v : rev_6766 ) ( Generated : 9/8/2010 11:55:12 AM )
// Created on 2008-12-25 by Somchai
// Asked by Bachir by email on 2008-12-18
// This ucheader.js is called by UControl/UHeader.aspx


//----Declaration public variable---

var P_UCHEADER_PATH_WEBSERVER;
var P_UCHEADER_LBL_MESSAGEALERT_STATUS_SAVE1;
var P_UCHEADER_LBL_MESSAGEALERT_STATUS_SAVE2;
var P_UCHEADER_CURRENTLANG;
var P_UCHEADER_CONST_ISO_EN;
var P_UCHEADER_CURRENTUSERID;
var P_UCHEADER_CURRENTUSERTYPE;
var P_UCHEADER_CONST_ISO_ANONYMOUS;
var P_UCHEADER_LBL_LOGOUT
var P_UCHEADER_LBL_PLEASEWAIT
var P_UCHEADER_LBL_MESSAGE_SESSION_TIMEOUT

var _this_for_validate_sessionid = null

function G(i) { return document.getElementById(i) }
function _this_for_validate_session_start() {
    _this_for_validate_sessionid = 0 //setTimeout(_this_for_validate_session, 1000 * 60)
}
function _this_for_validate_session() {
    //clearTimeout(_this_for_validate_sessionid)
    try {
        doAjaX(P_UCHEADER_PATH_WEBSERVER + 'WYAJaxPage/Ajax_Main.aspx?RND="' + new Date(), 'MODE=checksession', '_this_for_validate_session_callback', '_waittingsession_')
    } catch (e) {
        _this_for_validate_session_start()
    }
}
function _this_for_validate_session_callback(mreturn) {
    if (mreturn != 'Y') {
        UClose_Overlay()
        ShowAlertMessageWait(P_UCHEADER_LBL_MESSAGE_SESSION_TIMEOUT, '_this_for_validate_session_OK()')
    } else {
        _this_for_validate_session_start()
    }
}
function _this_for_validate_session_OK() {
    G("U_hidpage").value = "H"
    document.forms[0].submit()
}
function U_SubmitPage(mpage, mtypeshowlayer) {
    U_CallShowWaiting(P_UCHEADER_LBL_PLEASEWAIT)
    G("U_hidpage").value = mpage;

    if (mpage == "M") { //it mean must be check anywhere for confirm
        //start open layer
        if (mtypeshowlayer == "NO") { // this one use on home page click user after logind
            document.forms[0].submit();
        }
        else {
            SendAlertMessageQuestion("SubmitFromPressMyProfile()", P_UCHEADER_LBL_MESSAGEALERT_STATUS_SAVE1 + "<br>" + P_UCHEADER_LBL_MESSAGEALERT_STATUS_SAVE2)
        }

    }
    else if (mpage == "O") {
        SendAlertMessageQuestion("SubmitFromPressLogout()", P_UCHEADER_LBL_LOGOUT);
    }
    else {
        document.forms[0].submit();
    }


}

function SubmitFromPressMyProfile() {
    // because if don't use setTimeout it will not submit to next page....
    setTimeout(SubmitTrueAfterSelectY, 700);
}

function SubmitTrueAfterSelectY() {
    document.forms[0].submit();
}


function ULoad_HeaderControl() {
    var PublicStatus = ""
    var TmpLang = P_UCHEADER_CURRENTLANG;
    if (TmpLang == "") { TmpLang = P_UCHEADER_CONST_ISO_EN; }
    G("CboLang").value = TmpLang;

    //---------set hide or show on user login already ------
    var muserid = P_UCHEADER_CURRENTUSERID;
    var musertype = P_UCHEADER_CURRENTUSERTYPE;
    if (muserid == "0" || musertype == P_UCHEADER_CONST_ISO_ANONYMOUS) {
        HideLayerById("idwebcome"); HideLayerById("idlogoUT")
        ShowLayerById('idmytour');
        ShowLayerById('U_LinkHome_before');
        HideLayerById('U_LinkHome');
    }
    else {
        ShowLayerById('idwebcome'); ShowLayerById("idlogoUT")
        HideLayerById('idmytour');
        ShowLayerById('U_LinkHome');
        HideLayerById('U_LinkHome_before');
    }


}

function _save_header_region() {
    try {
        if (G("hidregionscode") != null) {
            G("hidregionscode").value = CountRegionSelected(2, true);
        }
    } catch (e) {
    }
}
//function U_dolang() {
//    U_CallShowWaiting(P_UCHEADER_LBL_PLEASEWAIT)
//    _save_header_region()
//    G("U_hidlang").value = G("CboLang").value
//    document.forms[0].submit();  
//}
function U_dolang() {
    G("U_hidlang").value = G("CboLang").value;
    _save_header_region();

    if (document.getElementsByTagName('body').homepage)
    { var obj = document.getElementsByTagName('body').homepage.className }
    else
    { var obj = "nonhome" }

    if (obj != "home") {
        SendAlertMessageQuestion("changeLang()", LBL_LANG_CHAGE_MSG1 + "<br>" + LBL_LANG_CHAGE_MSG2);
    }
    else {
        document.forms[0].submit();
    }

}


function changeLang() {
    U_CallShowWaiting(P_UCHEADER_LBL_PLEASEWAIT);
    setTimeout(SubmitTrue, 300);
}

function SubmitTrue() {
    document.forms[0].submit();
}
function SubmitFromPressLogout() {
    // same trick than above : timeout to force redirect and logout, don't know why direct U_Logout doesn't work : /
    setTimeout(U_Logout, 300);
}

function U_Logout() {
    U_CallShowWaiting(P_UCHEADER_LBL_PLEASEWAIT)
    _save_header_region()
    G("U_hidpage").value = "O" //logout    
    document.forms[0].submit();
}

//ajax call to inject some innerHTML
function Call_notice_writefile(ajax_mode, html_file) {
    doAjaX(P_UCHEADER_PATH_WEBSERVER + 'WYAJaxPage/Ajax_Main.aspx?"', 'MODE=' + ajax_mode + '&HTMLFILE=' + html_file + '&RND=' + new Date(), "Callback_headertooltip")
}

function Callback_headertooltip(mreturn) {
    _showpanelmessage(mreturn, 2, 800, 500, "#FFFFFF", "", "")
}//***********************************************
// ajax : how to use
//***********************************************
// kpo 09/06/2006 created ,put in library, put comment
//***********************************************
//
//1)include js. file
//<script language="JavaScript" src="AJax/JsAjax.js"></script>
//
//2)in your function call doAjax(url,call back function name)
//eg., function a()
//     {
//      doAjax('FormGetWarranty.asp?mTYPE=CAR&mCUSA='+mCUSA+'&RND='+new Date(),'loadWarranties')       
//     }
//3) put your callbackfunction (this format)
//
//function loadWarranties() {
//    if (xmlhttp.readyState==4) { 
//        if (xmlhttp.status==200) { 
//
//            >>>> put your code here.,xmlhttp.responseText will return what your response.write in page url
//
//            }
//        }
//    }
//}
//4) besure that you have this in your URL
// '&RND='+new Date(), >> this will help to reload it,otherwise your result will not update.
//***********************************************
function doAjax(gURL,mFunc)
{
	//styleId=pStyle;
	//create the Cross-browser XMLHttpRequest object
	if (window.XMLHttpRequest) { // code for Mozilla, Safari, etc 
		xmlhttp=new XMLHttpRequest();
		if (xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType('text/xml');
		}	
		eval("xmlhttp.onreadystatechange="+mFunc+";")
		xmlhttp.open("GET", gURL, true);
		xmlhttp.send(null);
	} else if (window.ActiveXObject) { //IE 
		xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 
		if (xmlhttp) {
			eval("xmlhttp.onreadystatechange="+mFunc+";")
			xmlhttp.open('GET', gURL, false);
			xmlhttp.send();
		}
	}
}
function doAjaX(gURL,mParam,mFunc,mvarsetname)
{
    var mvarname = mvarsetname
    if (mvarname == null) mvarname = 'xmlhttp'
	//styleId=pStyle;
	//create the Cross-browser XMLHttpRequest object
	if (window.XMLHttpRequest) { // code for Mozilla, Safari, etc 
	    eval(mvarname+"=new XMLHttpRequest();"+
	         mvarname+".onreadystatechange = function(){;"+
                "if ("+mvarname+".readyState==4) {;"+
                "  if ("+mvarname+".status==200) {;"+ 
                "      var mreturn = "+mvarname+".responseText;"+
                "      "+mFunc+"(mreturn);"+
                "  };"+
                "  };"+
                "};"+
		     mvarname+".open('POST',gURL, true);"+
             mvarname+".setRequestHeader('Content-Type','application/x-www-form-urlencoded');"+
             mvarname+".setRequestHeader('Content-length', mParam.length);"+
             mvarname+".setRequestHeader('Connection', 'close');"+
		     mvarname+".send(mParam);")
	} else if (window.ActiveXObject) { //IE 
		eval(mvarname+"=new ActiveXObject('Microsoft.XMLHTTP');"+ 
		     "if ("+mvarname+") {"+
	         mvarname+".onreadystatechange = function(){;"+
                "if ("+mvarname+".readyState==4) {;"+
                "  if ("+mvarname+".status==200) {;"+ 
                "      var mreturn = "+mvarname+".responseText;"+
                "      "+mFunc+"(mreturn);"+
                "  };"+
                "  };"+
                "};"+
		     mvarname+".open('POST', gURL, true);"+
             mvarname+".setRequestHeader('Content-Type','application/x-www-form-urlencoded');"+
             mvarname+".setRequestHeader('Content-length', mParam.length);"+
             mvarname+".setRequestHeader('Connection', 'close');"+
		     mvarname+".send(mParam);"+
		     "}")
	}
}//*************************************************
// JScript File
// created  : kpo 
// modified : kpo 14/06/2006 adding rEplace
// modified : kpo 26/06/2006 adding randomid,guid
// modified : kpo 06/09/2006 addBookmarkForBrowser
// modified : sno 28/09/2006 adding EmailCheck
// modified : KPO 29/11/2006 adding gettodaystring
//*************************************************
//
//today
function _GetToDayString()
{
	return _FormatDateString('','','')
}
function _doTriM(mdata)
{
   return dotrim(rEplace(rEplace(mdata,'\r',''),'\n',''))
}
function _FormatDateString(pYear,pMonth,pMonthDay)
{
	var ppyear = parseFloat(pYear)
	var ppmonth = parseFloat(pMonth)
	var ppday = parseFloat(pMonthDay)
	var istoday = new Date()				

	ppyear = isNaN(ppyear)?istoday.getFullYear():ppyear
	ppmonth = isNaN(ppmonth)?istoday.getMonth()+1:ppmonth
	ppday = isNaN(ppday)?istoday.getDate():ppday

 	var disp_Month = (ppmonth < 10) ? "0" + ppmonth : ppmonth;
 	var disp_Day = (ppday  < 10) ? "0" + ppday  : ppday;
	document.getElementById(_C_Month).selectedIndex = ppmonth -1;
	return disp_Day + "/" + disp_Month + "/" + ppyear;
 }		
//end xml loader
//change combo
function DochangeCposCombo(mCombo,mSelectText)
{
    try{
    document.getElementById(mCombo).value = mSelectText
    Changepos1(mCombo)
    }catch(e){
    }
}    
 
//focus !
function domyFocus(mycontrol)
{
  try{
    mycontrol.focus()
  }catch(e){
  }
}
//replace
function rEplace(mdata,mfind,mreplaced)

{
   var mreturn
   var mindex=0
   mreturn = mdata
   if (mreturn == null) return ''   
   if (mreturn == "") return mdata

   mindex = mreturn.indexOf(mfind,mindex) 
   while (mindex >= 0){
     mreturn = mreturn.substring(0,mindex) + mreplaced + mreturn.substring(mindex+mfind.length,mreturn.length)
     mindex = mreturn.indexOf(mfind,mindex)
   }
   return mreturn
}
//randomid
function RaNdomID()
{
   var mdate = new Date();
   return Math.floor(Math.random() * mdate.getDate()).toString(16)+ mdate.getMonth().toString(16) + 
        mdate.getFullYear().toString().substring(0,2).toString(16) + mdate.getFullYear().toString().substring(2,4).toString(16) + 
        mdate.getHours().toString(16) + mdate.getMonth().toString(16) + mdate.getSeconds().toString(16) + 
        Math.floor(Math.random() * mdate.getMilliseconds()).toString(16)
}
function getGuid()
{
var theguid = "{"; 
for (var i = 1; i <= 32; i++) 
 { 
 var n = Math.floor(Math.random() * 16.0).toString(16); 
 theguid += n; 
 if ((i == 8) || (i == 12) || (i == 16) || (i == 20)) 
  theguid += "-"; 
 } 
theguid += "}"; 
return theguid   
}
//remove space
function dotrim(mtextstring)
{
    if (mtextstring == null) return ''
    if (mtextstring == '') return ''
    
    var icrc
    var icrc2
    var mtext
    mtext = mtextstring
    icrc = mtext.length
    icrc2=0	    
    while (mtext.substring(mtext.length-1,mtext.length) == ' '){
        mtext = mtext.substring(0,mtext.length-1)
        icrc2++;
        if (icrc2 > icrc) break;
    }    
    icrc = mtext.length
    icrc2=0	    
    while (mtext.substring(0,1) == ' '){
        mtext = mtext.substring(1,mtext.length)
        icrc2++;
        if (icrc2 > icrc) break;
    }    
    return mtext
}
//validate email
function validateemail(memail0) 
{  
   var memail = new String(memail0)
   if (dotrim(memail) == "") return true;
   var breturn = false
   var ioneindex=0
   var itmpindex=0
   var iatindex   
   iatindex = memail.indexOf("@")
   ioneindex = memail.indexOf(".",ioneindex)
   itmpindex = ioneindex

   while (itmpindex > 0)
   {
     itmpindex = memail.indexOf(".",++itmpindex)
     if (itmpindex > iatindex) {
        ioneindex = itmpindex  
        break;
     }
   }   
   //has one .
   //has one @
   //@ and . can't first
   if ((iatindex > 0) && (ioneindex >0))
   {    
     // . must after @ but not the next one.
     if (iatindex < ioneindex){
        //@ and . can't last
        if ((iatindex < (memail.length-1)) && (ioneindex < (memail.length-1))){
           //must has only 1 @
           iatindex = memail.indexOf("@",++iatindex)
           if (iatindex == -1){
              iatindex = memail.indexOf("@")
              if ((memail.charAt(iatindex-1) != '.') && (memail.charAt(iatindex+1) != '.')) breturn = true
           }
        }        
     }
   }
   return breturn
}

// compare date
//0 - equal
//1 - mdate1 > mdate2
//-1 - mdate1 < mdate2
//-255 - error
function CompareDate(mdate1,mdate2)
{
    var mday1
    var mday2
    var mmon1
    var mmon2
    var year1
    var year2
    mday1 = parseFloat(mdate1.substring(0,2))
    mday2 = parseFloat(mdate2.substring(0,2))
    mmon1 = parseFloat(mdate1.substring(3,5))
    mmon2 = parseFloat(mdate2.substring(3,5))
    year1 = parseFloat(mdate1.substring(6,10))
    year2 = parseFloat(mdate2.substring(6,10))
    var mdatev1
    var mdatev2 
    try{
    mdatev1 = new Date(year1,mmon1-1,mday1)    
    mdatev2 = new Date(year2,mmon2-1,mday2)  
    if ((mday1 == mday2) && (mmon1 == mmon2) && (year1 == year2)){
        return 0
    }else if (mdatev1 > mdatev2){
        return 1
    }else if (mdatev1 < mdatev2){
        return -1
    }
    }catch(e){
        return -255
    }
}
//compare time
//0 - equal
//1 - time1 > mtime2
//-1 - mtime1 < mtime2
//-255 - error
function cOmpareTime(time1,time2)
{
  var mtime1s
  var mtime2s 
  try{
  mtime1s = time1.split(':')
  mtime2s= time2.split(':')
  }catch(e){
    return -255;
  }

  if (mtime1s.length <= 1) return -255;
  if (mtime2s.length <= 1) return -255;

  if (parseFloat(mtime1s[0]) > parseFloat(mtime2s[0])){
     return 1  
  }
  else if (parseFloat(mtime1s[0]) < parseFloat(mtime2s[0])){
     return -1
  }
  else
  {
     if (parseFloat(mtime1s[1]) > parseFloat(mtime2s[1])){
        return 1  
     }
     else if (parseFloat(mtime1s[1]) < parseFloat(mtime2s[1])){
        return -1     
     }
     else
     { 
        return 0
     }
  }   
}
//chechking for Bank account checksum
// -1 : invalid length
// -2 : invalid format
// 1 : ok
function ValidateBankControl(mBank)
{       
    var st_temp
    var i_del=0
    var i_index
		if((mBank!= "")&&(mBank!=null)){
			st_temp = new String(mBank)
			//remove dash
			i_index = st_temp.indexOf("-")
			while (i_index > 0)
			{
			  st_temp = st_temp.substring(0,i_index) + st_temp.substring(i_index+1,st_temp.length)
       	      i_index = st_temp.indexOf("-")
			}
			st_temp1 = new String(st_temp)
			if((st_temp1 != null) && (st_temp1 != "")){
				if(st_temp1.length == 12){
					st_temp1 = st_temp1.substring(0,3)+st_temp1.substring(3,10)
					i_2 = parseFloat(st_temp1)
					i_2 = i_2 % 97
					if (i_2 == 0)
					{
						i_2 = 97
					}
					st_temp1 = st_temp.substring(10,12);
					if (i_2 != parseFloat(st_temp1)){
					    return -1
					}
					else{
					    return 1
					}
				}else{
					return -2
				}
			}
		}
}
// xml loader
// add item to select element the less
// elegant, but compatible way.
function appendToSelect(select, value, content) {
    var opt;
    opt = document.createElement("option");
    opt.value = content.nodeValue;
    opt.appendChild(content);
    select.appendChild(opt);
}
function getElementTextNS(prefix, local, parentElem, index) {

    var result = "";

    if (prefix && window.ActiveXObject) {
        // IE/Windows way of handling namespaces

        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {

        // the namespace versions of this method 
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided 
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible
        // whitespace (carriage return) text nodes 
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
            return result.firstChild.nodeValue;    		
        }
    } else {
        return "n/a";
    }
}
function loadXMLDoc(url,funcarray) {
    var req 
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = function() {
      if (req.readyState == 4) {
         if (req.status == 200){
            try{
             for (var ifunc=0;ifunc<funcarray.length;ifunc++){                         
                if (funcarray[ifunc] !== ''){                   
                   eval(funcarray[ifunc]) 	                   
                }
             }
            }catch(e){
            }
         }
      }
    }
    req.open("GET", url, true);
    req.send(null);
}
//end xml loader 

function FillInCombo(req,lang,combo,field,defaultvalue)
{
    var select = document.getElementById(combo);
    var items = req.responseXML.getElementsByTagName(lang);
    var content
    for (var i = 0; i < items.length; i++) {
        content = document.createTextNode(getElementTextNS("", field, items[i], 0))
        appendToSelect(select, i,content);
        try{
        if (defaultvalue == content.nodeValue) select.options[i].selected = true
        }catch(e){
        }
    }
}

// ****************************************************************************
// PARAMETERS IN : selected combo and changing combo
// RETURN VALUE  : none
// PURPOSE       : change changed combo depend to select combo
//               : but you must enter value in combo     
// CALL FROM     : none
// Creation Date : 1999/02/15 (KPO)
// Modification  : Date          User        Comment                      Version
// ****************************************************************************
function Changepos(Comboselect,Combochange)
{
   if (Comboselect.selectedIndex > 0)
   { 
     var i_for
     var st_temp
     var st1
     var st2
     var bfoundyn = false
     st_temp = Comboselect.options[Comboselect.selectedIndex].text         
     st1 = st_temp.split(",")
     for (i_for=0;i_for < Combochange.length;i_for++)
     {
       st_temp = Combochange.options[i_for].text
       st2 = st_temp.split(",")
       if ((st2[0] == st1[1]) && (st2[1] == st1[0]))
       {	         
         Combochange.selectedIndex = i_for
         bfoundyn = true
         break
       }
     }	     
   }
   if (!bfoundyn) {
      Combochange.selectedIndex = -1
      Comboselect.selectedIndex = -1
   }
}
//loading combo
function _ULoading_combopos(mComboname,mSeltext)
{    
   var mCombo = document.getElementById(mComboname)
   var _mst = '';
   var _msts
   if (mSeltext  == '') return
   var _msels = mSeltext.split(",")
   if (_msels.length < 2) return  
   var bfoundyn = false
   for (var i=0;i<mCombo.options.length-1;i++){
        _mst = mCombo.options[i].text
        if (_mst != ''){
            _msts = _mst.split(",")
            if (_msts.length > 0){
                if ((_msts[0] == _msels[0]) && (_msts[1] == _msels[1])){
                    mCombo.selectedIndex = i   
                    bfoundyn = true
                    break;
                }   
            }
        }
   }
   if (!bfoundyn){
       //search again
       for (var i=0;i<mCombo.options.length-1;i++){
            _mst = mCombo.options[i].text
            if (_mst != ''){
                _msts = _mst.split(",")
                if (_msts.length > 0){
                    if (_msts[0] == _msels[0]){
                        mCombo.selectedIndex = i   
                        bfoundyn = true
                        break;
                    }   
                }
            }
       }
   }
   if (!bfoundyn) mCombo.selectedIndex = -1
   Changepos1(mComboname)
}
//validate size of textarea
function DoValidateTextAreaSize(mControl,mSize,mMessage,mLine)
{
    var mcommlen
    mcommlen = dotrim(document.getElementById(mControl).value)
    var mlines = 1
    if (parseFloat(mLine) > 0) mlines = parseFloat(mLine)
    if (mcommlen.length > (mSize*mlines)){
        alert(mMessage)
        domyFocus(document.getElementById(mControl))
        return true            
    }
}
//round with 2 decimal
function rxund(mvalue)
{
 return Math.round(mvalue*100)/100
}    
//val in javascript
function UVal(mText0,mCurrencyYN)
{
    var mText = mText0
    if (mCurrencyYN) mText = rEplace(rEplace(mText0,'.',''),',','.')
    var __mval
    __mval = parseFloat(mText,2)
    if (isNaN(__mval)) __mval = 0
    return rxund(__mval)
}

/****************************************************************/
function UReplace(mdata)
{
    return rEplace(mdata," ","")
}
function UReplacest(mdata,mst1,mst2)
{
    return rEplace(mdata,mst1,mst2)
}
function uParseStringforRemote(mString)
{
   return rEplace(rEplace(rEplace(mString,"<","&lt;"),">","&gt;"),"&","&amp;")
}
function uParseStringforRemoteAjax(mString)
{
   return rEplace(rEplace(rEplace(mString,"<",";lt;"),">",";gt;"),"&",";amp;")
}

//for convert string 
//case example
//	Newcell.innerHTML = "<td width='35'><font face='Courier New'><small>"+UmakestringforjavaHtml(arrVacation[kTemp+4])+"</td>"
function UmakestringforjavaHtml(mdata)
{
   var mvdata
   mvdata = rEplace(mdata,"<","&#60;")
   mvdata = rEplace(mvdata,">","&#62;")
   mvdata = rEplace(mvdata,"\'","&#39;")   
   mvdata = rEplace(mvdata,"\x0a","<BR>") 
   return mvdata
}
//case example
//	oCol3.innerHTML = "<font color='"+col3color+"' face='Arial'>" + UmakestringforjavawithHtml(tasknamewith <ahref>) + " &nbsp;</font>"
function UmakestringforjavawithHtml(mdata)
{
   var mvdata
   mvdata = rEplace(mdata,"\'","&#39;")   
   mvdata = rEplace(mdata,'"',"&quot;")   
   mvdata = rEplace(mvdata,"\x0a","<BR>") 
   return mvdata
}
//there is problem in replace in java
//case example
//	data_Tmp = Umakestringforjavalink(arrVacation[kTemp+4])
//	Newcell.innerHTML = "<td width=20><font face=Courier New><small>&nbsp;" +
//	 "<a class=Normal1 href=\"javascript:vacation('"+ UReplacefordatasplit(data_Tmp) +"')\">"+ 
//	 arrVacation[kTemp+2]+"</a></td>"
function Umakestringforjavalink(mdata)
{
   var mvdata
   mvdata = rEplace(mdata,"\'","&#92;&#39;")
   mvdata = rEplace(mvdata,"\x0a","&#92;n") 
   mvdata = rEplace(mvdata,"\x0d","") 
   mvdata = rEplace(mvdata,"\\","&#92;&#92;")  
   mvdata = rEplace(mvdata,'"',"&#34;") 
   return mvdata
}
//case example
//	mHTML = "<input type = text "+ mTaskLock + " name = 'txtA" + mLength + "' value = '" + Umakestringfortaskpage(mComment) + "' style='Background-color:#F7E7C4' style='width = 100%'>" 
function Umakestringfortaskpage(mdata)
{
   var mvdata
    mvdata = rEplace(mdata, "&", "&#38;")
    mvdata = rEplace(mvdata, ">", "&#62;")
    mvdata = rEplace(mvdata, "<", "&#60;")
    mvdata = rEplace(mvdata,"'","&#39;")	
    return  mvdata
}
//change comma to .
function ChangeComma(data)
{
	return rEplace(data,",",".")
}
//use for show the hyperlink <BUG XXXX>
//eg. oCol3.innerHTML = "<font color='"+col3color+"' face='Arial'>" + Umakestringforhyperlink(taskname) + "&nbsp;</font>"
function Umakestringforhyperlink(data)
{
	//fix problem about <a href =''><text></a>
	//change &#60; > 7 (normall user can't fill it)
	//change &#62; > 9 (normall user can't fill it)
	var mdata
	mdata = rEplace(data,"&#60;","\x07")
	mdata = rEplace(mdata,"&#62;","\x09")
	//change 	
	mdata = rEplace(mdata,"<","&#60;")
	mdata = rEplace(mdata,">","&#62;")
	//change back
	mdata = rEplace(mdata,"\x07","<")	
	mdata = rEplace(mdata,"\x09",">")
	
	//rEplace quote
	mdata = rEplace(mdata,'"',"&quot;")
	//there is some text with tab from bugtracking 
	mdata = rEplace(mdata,"\x08"," ")
	return mdata
}

//****************************************************************
//remove row from row.id
function RemoveRow(mRows,myid)
{  
  var ireturn=-1
  for (var irow=1;irow<mRows.length-1;irow++)
  {
     if (mRows[irow].id == myid){
        ireturn = irow;
        break;
     }
  }  
  return ireturn
}
//return value to space if null or undefine
function doISundefine(mvalue)
{
   return (mvalue == null)?'':mvalue
}
//bookmark
function addBookmarkForBrowser(title,url) {
if (window.sidebar != null) { 
    window.sidebar.addPanel(title, url,""); 
} else if( document.all != null) { 
    window.external.AddFavorite( url, title); 
} else if( window.opera && window.print ) { 
    return true; 
} 
}
//gettting scrolling 
function UgetScrollingPositionY()
{
var position='0';
if (typeof window.pageYOffset != 'undefined')
{
   position = window.pageYOffset
}
else if ((typeof document.documentElement.scrollTop != 'undefined') && (document.documentElement.scrollTop > 0))
{
    position = document.documentElement.scrollTop
}
else if (typeof document.body.scrollTop != 'undefined')
{
    position = document.body.scrollTop
}
return position;
}
//validate IE/Netscape
function UISIEBrowserYN()
{
    try{
       return (navigator.appVersion.indexOf("MSIE") > 0)
    }catch(e){
       return false
    }
}
function UReplaceFrenchForAjax(mdata)
{
		var myS = new String(mdata); 
        var i = 0;
        var tmpvalue = 0 
        var mvalue =""
      
        for(i=0;i<=myS.length -1;i++)
        {
            tmpvalue = myS.charCodeAt(i)
            mvalue   = myS.charAt(i) 
           
            if(parseFloat(tmpvalue) == 167){myS = myS.replace(mvalue,"%;Azbycx;")}     
      
            else if(parseFloat(tmpvalue) == 201){myS = myS.replace(mvalue,"%;Eacute;")}
            else if(parseFloat(tmpvalue) == 233){myS = myS.replace(mvalue,"%;eacute;")}
            else if(parseFloat(tmpvalue) == 200){myS = myS.replace(mvalue,"%;Egrave;")}

            else if(parseFloat(tmpvalue) == 232){myS = myS.replace(mvalue,"%;egrave;")}
            else if(parseFloat(tmpvalue) == 199){myS = myS.replace(mvalue,"%;Ccedil;")}
            else if(parseFloat(tmpvalue) == 231){myS = myS.replace(mvalue,"%;ccedil;")}

            else if(parseFloat(tmpvalue) == 192){myS = myS.replace(mvalue,"%;Agrave;")}
            else if(parseFloat(tmpvalue) == 224){myS = myS.replace(mvalue,"%;agrave;")}
            else if(parseFloat(tmpvalue) == 202){myS = myS.replace(mvalue,"%;Ecirc;")}

            else if(parseFloat(tmpvalue) == 226){myS = myS.replace(mvalue,"%;acirc;")}
            else if(parseFloat(tmpvalue) == 219){myS = myS.replace(mvalue,"%;Ucirc;")}
            else if(parseFloat(tmpvalue) == 234){myS = myS.replace(mvalue,"%;ecirc;")}

            else if(parseFloat(tmpvalue) == 203){myS = myS.replace(mvalue,"%;Euml;")}
            else if(parseFloat(tmpvalue) == 251){myS = myS.replace(mvalue,"%;ucirc;")}
            else if(parseFloat(tmpvalue) == 217){myS = myS.replace(mvalue,"%;Ugrave;")}

            else if(parseFloat(tmpvalue) == 235){myS = myS.replace(mvalue,"%;euml;")}
            else if(parseFloat(tmpvalue) == 249){myS = myS.replace(mvalue,"%;ugrave;")}
            else if(parseFloat(tmpvalue) == 194){myS = myS.replace(mvalue,"%;Acirc;")}
            
            else if(parseFloat(tmpvalue) == 43){myS = myS.replace(mvalue,"%;BzbycxB;")} //+

        }
        
    return myS

}

//-------------------- function for check email ----------------------
function emailCheck (emailStr,msgerr1,msgerr2,msgerr3,msgerr4,msgerr5,msgerr6,mshowmsgyn) {
/* The following pattern is used to check if the entered e-mail address
   fits the user@domain format.  It also is used to separate the username
   from the domain. */
var emailPat=/^(.+)@(.+)$/
/* The following string represents the pattern for matching all special
   characters.  We don't want to allow special characters in the address. 
   These characters include ( ) < > @ , ; : \ " . [ ]    */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* The following string represents the range of characters allowed in a 
   username or domainname.  It really states which chars aren't allowed. */
var validChars="\[^\\s" + specialChars + "\]"
/* The following pattern applies if the "user" is a quoted string (in
   which case, there are no rules about which characters are allowed
   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
   is a legal e-mail address. */
var quotedUser="(\"[^\"]*\")"
/* The following pattern applies for domains that are IP addresses,
   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
   e-mail address. NOTE: The square brackets are required. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
/* The following string represents an atom (basically a series of
   non-special characters.) */
var atom=validChars + '+'
/* The following string represents one word in the typical username.
   For example, in john.doe@somewhere.com, john and doe are words.
   Basically, a word is either an atom or quoted string. */
var word="(" + atom + "|" + quotedUser + ")"
// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
/* The following pattern describes the structure of a normal symbolic
   domain, as opposed to ipDomainPat, shown above. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

/* Finally, let's start trying to figure out if the supplied address is
   valid. */
/* Begin with the coarse pattern to simply break up user@domain into
   different pieces that are easy to analyze. */
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  /* Too many/few @'s or something; basically, this address doesn't
     even fit the general mould of a valid e-mail address. */     
    if (mshowmsgyn){
	    if (msgerr1 == null) {
	       alert("Email address seems incorrect (check @ and .'s)")
	    }else{
	       alert(msgerr1)
	    }
	}
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
if (user.match(userPat)==null) {
    // user is not valid
    if (mshowmsgyn){
	if (msgerr2 == null) {
        alert("The username doesn't seem to be valid.")
	}else{
	   alert(msgerr2)
	}
	}
    return false
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
   host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        if (mshowmsgyn){
        	if (msgerr3 == null) {
	            alert("Destination IP address is invalid!")
	        }else{
	           alert(msgerr3)
	        }
	        }
		return false
	    }
    }
    return true
}

// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
    if (mshowmsgyn){
	if (msgerr4 == null) {
	    alert("The domain name doesn't seem to be valid.")
	}else{
	    alert(msgerr4)
	}
	}
    return false
}

/* domain name seems valid, but now make sure that it ends in a
   three-letter word (like com, edu, gov) or a two-letter word,
   representing country (uk, nl), and that there's a hostname preceding 
   the domain or country. */

/* Now we need to break up the domain to get a count of how many atoms
   it consists of. */
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) {
   // the address must end in a two letter or three letter word.
   if (mshowmsgyn){
	if (msgerr5 == null) {
        alert("The address must end in a three-letter domain, or two letter country.")
	}else{
	    alert(msgerr5)
	}
	}
   return false
}

// Make sure there's a host name preceding the domain.
if (len<2) {
   var errStr="This address is missing a hostname!"
    if (mshowmsgyn){
    if (msgerr6 == null) {
       alert(errStr)
	}else{
	    alert(msgerr6)
	}
	}
   return false
}

// If we've gotten this far, everything's valid!
return true;
}
//------------------------------------  End ---------------------------->

//copy text in clipboard
function _copyInClipboard(mcontrol)
{
	try{
        var s = document.getElementById(mcontrol).createTextRange() 
        s.execCommand("SelectAll")	
        document.execCommand("Copy")   
	    return true
	}catch(e){
	    alert('Your browser don\'t permit the editor to automatically execute copying operations\n Please use the keyboard CTRL+C')
	}
}		

//------------------------------------  End ---------------------------->
//hidden combo when panel show
//before:
//				<select class="Normal" id="lstBackup" style="WIDTH: 560px; HEIGHT: 250px" size="5">
//              <option></option>
//				</select>
//
//after : put td with samename as combo+_show (with display = none)
//<table><tr><td id = "lstBackup_show">
//				<select class="Normal" id="lstBackup" style="WIDTH: 560px; HEIGHT: 250px" size="5">
//              <option></option>
//				</select></td></tr></table>

// 1) when show panel :-
//  _ShoWPanel_DIV_Swap(1,"comboname",bpanelyn)

// 2) put _UWaitPanel_DIV_Closeall when close panel
				
function _ShoWPanel_DIV_Swap(mno,mcombo,bpanelyn)
{
var _the_combo = document.getElementById(mcombo)
var _thecomboh = _the_combo.style.height
if (_thecomboh == 0) _thecomboh = '21px'
if (_the_combo.style.display == 'none') return
var _the_combolay = '<table border = 1 cellspacing = 0 cellpadding = 0 style = "height:'+_thecomboh+';width:'+_the_combo.style.width +';border:solid 1px black"><tr><td align = "left" valign = "'+ ((_the_combo.size == 0)?'middle':'top') +'">'
var bnoselect=false
document.getElementById("_waitPanelcall_"+mno).innerHTML = mcombo
if (bpanelyn){    
    for (var ifor=0;ifor<_the_combo.length;ifor++){        
       if (_the_combo.size == 0) {
           if (_the_combo.options[ifor].selected) {
                if (_the_combo.options[ifor].text == ''){
                _the_combolay += '&nbsp;'
                }else{
                _the_combolay += _the_combo.options[ifor].text 
               }
               bnoselect = true;
               break;
           }
       }else{
            if (ifor > 50) break;
            _the_combolay += _the_combo.options[ifor].text + '<br>'       
       }
    }
    _the_combolay += '</td></tr></table>'
    document.getElementById("_waitPanel_"+mno).innerHTML = document.getElementById(mcombo+"_show").innerHTML
    document.getElementById(mcombo+"_show").innerHTML = _the_combolay
}else{
    if (document.getElementById("_waitPanel_"+mno).innerHTML != ''){
    document.getElementById(mcombo+"_show").innerHTML = document.getElementById("_waitPanel_"+mno).innerHTML
    document.getElementById("_waitPanel_"+mno).innerHTML = ''
    }
}
}
//------------------------------------  End ---------------------------->
function _LOADING_Combo_size(mcomboname,mvalue,msize)
{
    for (var i=0;i<document.getElementById(mcomboname).length;i++)
    {
        if (document.getElementById(mcomboname).options[i].value.substring(0,msize) == mvalue){
           document.getElementById(mcomboname).selectedIndex = i;
           break;
        }
    }
}
function _LOADING_Combo_nosize(mcomboname,mvalue)
{
    for (var i=0;i<document.getElementById(mcomboname).length;i++)
    {
        if (document.getElementById(mcomboname).options[i].value == mvalue){
           document.getElementById(mcomboname).selectedIndex = i;
           break;
        }
    }
}
function _LOADING_Combo_Fromtext(mcomboname,mtext)
{
    if (mtext == null) return
    if (mtext == '') return
    for (var i=0;i<document.getElementById(mcomboname).length;i++)
    {
        if (document.getElementById(mcomboname).options[i].text.substring(0,mtext.length) == mtext){
           document.getElementById(mcomboname).selectedIndex = i;
           break;
        }
    }
}
function _LOADING_Combo(mcomboname,mvalue,msize)
{
    if (msize == null){
        _LOADING_Combo_nosize(mcomboname,dotrim(mvalue))
    }else{
        _LOADING_Combo_size(mcomboname,dotrim(mvalue),msize)
    }
}
function _LOADING_ComboObj(mcombo,mvalue,msize)
{
    _LOADING_Combo(mcombo.id,mvalue,msize)
}
//+------------------------- upper 
function _UpperCase(data)
{
	var temp = new String(data)
	var ReturnValue = temp.toUpperCase()   
	return ReturnValue;
}
function _showwaitcombo(mcomboname,mcaptionwait)
{
    document.getElementById(mcomboname).length = 0;
    var _mwait = mcaptionwait
    if (_mwait == null) _mwait = 'Loading...'
    
    document.getElementById(mcomboname).options[0] = new Option(_mwait,'')
}
//---------------------------
//    Java Mask Control
//
// v 1.0 awi 29/05/2006
//
//*** 1. HTML Control must have name,id and have to fix maxlength (maxlength=all of character)
//*** 2. Fill style="text-align:right" if you wish to use right to left style
//*** 3. for like currency control please use textbox.defaultValue to calulate NOT use textbox.value
//***    then use function _SetCurrencyValue(textbox,iValue) to set it.
//*** 4. for more mask sign, please use '|' for seperate each mask sign.
//*** 5. for currency mask style if you want thousand deliminator, just  add true value in kilo parameter
//------------------------------------------------------
//For Bank acount, Date ,Time and Percent ....etc
//icheck parameter available with
// - 'ibank'
// - 'idate'
// - 'itime'
// - 'ipercent'  //SPA Request valid value 0% - 100%
// - 'iMultiple' //MTR request on Sep5,2006 for fullfill value format
// - ...
//------------------------------------------------------
//You have to put at least 3 event with 
//1.onpaste
//2.onkeypress
//3.onkeyup
//OPTIONAL onblur
//------------------------------------------------------
//By example with Bank account Control:  *_mask function
//------------------------------------------------------
//<input type = "text" name ="bank1" id ="bank1" onkeyup="javascript:return _mask(this,'4,12','-',event);" 
//onkeypress ="javascript:return _keypressed(event,this);" onpaste="javascript:return _bpaste(event)" 
//onblur="javascript:return _CheckLost(this,'ibank','-','Invalid Bank Account');" maxlength="14" size="13">[###-#######-##]
//1. onkeyup="javascript:return _mask(this,'4,12','-',event);" call function _mask(textbox,loc,delim,e,icheck) So
//	 - textbox = this (HTML control)
//	 - loc = '4,12' (position of deliminators seperate by ',' for more one)
//	 - delim = '-' (deliminator sign seperate by '|' for more one)
//	 - e = event (windows event) 
//	 - icheck = blank (is OPTIONAL parameter for check value is valid or not when press anykey)
//2. onkeypress="javascript:return _keypressed(event,this);" call function _keypressed(e,textbox,Currency)
//	 - e = event (windows event) 
//	 - textbox = this (HTML control)
//	 - Currency = blank (is OPTIONAL parameter for check some key use in currency)
//3. onpaste="javascript:return _bpaste(event)" call function _bpaste(event)
//	 - event = event (windows event) 
//4. onblur="javascript:return _CheckLost(this,'ibank','-','Invalid Bank Account');" call function _CheckLost(textbox,icheck,delim,message)
//**** is OPTIONAL event
//	 - textbox = this (HTML control)
//	 - icheck = 'ibank' (check value is valid for bank account)
//	 - delim = '-' (deliminator sign seperate by '|' for more one)
//	 - message = 'Invalid Bank Account' (your message to show when it's invalid value.) IS OPTIONAL parameter
//------------------------------------------------------
//By example with Currency control:	*_maskDigit function
//------------------------------------------------------
//<input type = "text" name ="Curr1" id ="Curr1" onkeyup="javascript:return _maskDigit(this,'2',',',event,true);" 
//onkeypress ="javascript:return _keypressed(event,this,true);" onpaste="javascript:return _bpaste(event)" 
//maxlength="10" size="13" style="text-align:right">[#######,##]
//1. onkeyup="javascript:return _maskDigit(this,'2',',',event,true);" call function _maskDigit(textbox,detail,delim,e,kilo)
//	 - textbox = this (HTML control)
//	 - detail = '2' (digit number after deliminator sign)
//	 - delim = ',' (deliminator sign can be ',' or '.' or etc..)
//	 - e = event (windows event) 
//   - kilo = true (want thousand deliminator)  IS OPTIONAL parameter
//2. onkeypress ="javascript:return _keypressed(event,this,true);" call function _keypressed(e,textbox,Currency)
//	 - e = event (windows event) 
//	 - textbox = this (HTML control)
//	 - Currency = true (is OPTIONAL parameter for check some key use in currency)
//3. onpaste="javascript:return _bpaste(event)"  call function _bpaste(event)
//	 - event = event (windows event) 
//**** if have >> onblur="javascript:return _CheckLost(this,'ipercent','.','Invalid Percent');"
//4. onblur="javascript:return _CheckLost(this,'ipercent','.','Invalid Percent');" call function _CheckLost(textbox,icheck,delim,message)
//**** is OPTIONAL event
//	 - textbox = this (HTML control)
//	 - icheck = 'ipercent' (check value is valid for percent)
//	 - delim = '.' (deliminator sign seperate by '|' for more one)
//	 - message = 'Invalid Percent' (your message to show when it's invalid value.) IS OPTIONAL parameter
//------------------------------------------------------
//------Key Button ----------
//------------------------------------------------------
//    8  backsp 46 Delete 45(-)
//    16 Shift 17 Ctrl 18 Alt
//    9 TAB 20 Cap lock   
//	  35 End 36 Home
//	  37 Left 39 Right
//    38 Up 40 Down
//	  (,) 44 or 188 ???
//	  (.) 110,192 and 46 ; for 46 why same as Delete
//------------------------------------------------------

var oValue
function _CheckLost(textbox,icheck,delim,message,mfunc)
{	
      var _funceval = ''
      if (mfunc != null) _funceval = mfunc
        
      if(textbox.value=='') return;
	  if(icheck=='idate')
	  {
		if(_datecheck(textbox,delim)=='1') return;
	  }
	  else if(icheck=='itime')
	  {
		if(_timecheck(textbox,delim)=='1') return;
	  }
	  else if(icheck=='ibank')
	  {	
		if(_ValidateBankControl(textbox,delim) == '1' ) 
		  {
			textbox.defaultValue = _replaceIt(textbox.value,"-","")
			return;
		  }
	  }
	  else if(icheck=='ipercent')
	  {
		if(_percentcheck(textbox,delim) == '1' ) return;
	  }
	  else if(icheck=='iMultiple') 
	  {
		var str = textbox.value
		var det = parseFloat(message)
		if (det ==0) return;
		if (!(str.indexOf(delim) > -1)) str = str + delim
		var i = str.indexOf(delim)		 
		var detail = ''
			for (var j=0; j<det ;j++ )
			{
				detail += '0'
			}
			str = str + detail
			str = str.substring(0,i+1) + str.substring(i+1,i+1+det)
			textbox.value = str
		return;
	  }
	  else
	  {	
	    if (_funceval == ''){
	        alert('please check your validate setting?')
	    }else{
	        try{
	        eval(_funceval+'("please check your validate setting?")')
	        }catch(e){
	        }
	    }
		return;
	  }
	if(message!='') {
	   if (_funceval == ''){
	       alert(message)
	   }else{
	       try{
	       eval(_funceval+'("'+message+'");')
	       }catch(e){
	       }
	   }
	}
	if (mfunc == ''){
	    try{
	        eval(textbox).focus()
	    }catch(e){
	    }
	}
}
function _bpaste(event)
{
	return false; 
}
function _onkeydowned(e)
{
	var TmpKey;
	if (window.event){TmpKey = e.keyCode;}//IE
	else {TmpKey = e.which;} //Firefox		
}
function _keypressed(e,textbox,Currency)
{	oValue = textbox.value
	var TmpKey;					
	if (window.event){TmpKey = e.keyCode;}//IE
	else {TmpKey = e.which;} //Firefox		
	//Currency: 43 is '+', 44 is ',', 45 is '-', 46 is '.'
	if(Currency && (parseFloat(TmpKey) > 42 && parseFloat(TmpKey) < 47))	return; 
	if (((parseFloat(TmpKey) < 48) || (parseFloat(TmpKey) > 57)) && (parseFloat(TmpKey) != 13) && (parseFloat(TmpKey)  != 8) && (parseFloat(TmpKey)  != 0) )
	{ 
		return false; 
	}
}
function _maskDigit(textbox,detail,delim,e,kilo)
{	
	detail = parseFloat(detail)
	var TmpKey;
	if (window.event){TmpKey = e.keyCode;}		//IE
	else {TmpKey = e.which;}									//Firefox
	if (parseFloat(TmpKey)==9) return false;		//for multiple control move
	if (parseFloat(TmpKey) != 20 && !(parseFloat(TmpKey) > 15 && parseFloat(TmpKey) < 19) && !(parseFloat(TmpKey) > 34 && parseFloat(TmpKey) < 41))
	{
		var CurPos = _getCurPos(e,textbox)			
		var str = textbox.value
		var i,k
		//### First,add delim if key is "," or "." then remove kilo sign,
		//-------
		if((parseFloat(TmpKey)==188) || (parseFloat(TmpKey)==110) || (parseFloat(TmpKey)==190)) //is "," and "." and "."
		{
			//var iEnd = str.length
			//if (str.indexOf(delim) > -1) iEnd = str.indexOf(delim)
			if(detail!= 0)
			{
				str = str.substring(0,CurPos-1) + delim + str.substring(CurPos,str.length)
			}				
			else
			{
				str = str.substring(0,CurPos-1) + str.substring(CurPos,str.length)
			}
			//str = str.substring(0,str.length) + delim
		}
		else if(parseFloat(TmpKey)==109 || parseFloat(TmpKey)==189) //is "-" key
		{
			var minus = ''
			if (str.substring(0,1) == '-') minus = '-'
			str = minus + str.replace(/-/g,'')
		}	
		else if(parseFloat(TmpKey)==107 || parseFloat(TmpKey)==187) //is "+" key
		{	
			var plus = ''
			if (str.substring(0,1) == '+')  plus = '+'			
			str = plus + str.replace(/\+/g,'')
		}	
		//-------remove kilo sign but use --> var str = textbox.defaultValue --> !! why it doesn't work?
		if (kilo)
		{
			if (delim == ',') str = _replaceIt(str,'.','')
			if (delim == '.') str = _replaceIt(str,',','')
		}
		//### Second check delim have one or more, check detail after delim
		if (str.indexOf(delim) > -1)					//exist (,) at least one
		{
			if((parseFloat(TmpKey)==188) || (parseFloat(TmpKey)==110) || (parseFloat(TmpKey)==190))
			{
				i = str.indexOf(delim)
				if((str.indexOf(delim,i+1) > -1) )	 //second point(,) 
				{
					str = str.substring(0,CurPos-1) + str.substring(CurPos,str.length)
				}
			}
			else
			{
				if((str.length - (str.indexOf(delim)+1)) > detail)
				{			
					str = str.substring(0,str.length-1)
					//str = oValue //not overwrite old value
				}
			}
		}	
		else
		{	
			k = textbox.maxLength - str.length
			if(k < detail+1)
			{
				if ((k == detail) && (detail!= 0)) str = str.substring(0,str.length-1) + delim + str.substring(str.length-1,str.length)
			}
		}
		//### Finally to show:set thousand, set cursor, return valid value
		var head,tail,kilo_sign,i_length,IsAdd_kilo,str_kilo		
		if (kilo)
		{	i = 0; head = ''; str_kilo = str; 
			if (str.indexOf(delim) > -1) 
				{i_length = str.indexOf(delim); tail = str.substring(i_length,str.length)}
			else 
				{i_length = str.length; tail=''	}
			if (delim == ',') kilo_sign = '.'
			if (delim == '.') kilo_sign = ','
			for (k = i_length; k > 0; k--)	
				{	i = i+1
					if ((i % 3 == 0) && (i != i_length)) 
					{ 
						head = kilo_sign + str.substring(k-1, k) + head	; 
						IsAdd_kilo = true
					}
					else 
					{	head = str.substring(k-1, k) + head }
				}
			str = head + tail
		}
		//----fix in IE for maxlength
		textbox.value = str.substring(0,textbox.maxLength)  
		//----correct the position of cursor 
		if ( parseFloat(TmpKey) != 8 && parseFloat(TmpKey) !=46 && (str.substring(CurPos-1,CurPos)==delim || IsAdd_kilo) ) 
		{
			if(str.substring(CurPos-1,CurPos)==delim)
			{
				if (!(str.length - (str.indexOf(delim)+1)>=detail)) CurPos=CurPos+1
			}
			else {CurPos=CurPos+1}
		}
		_setCurPos(e,CurPos)
		//### Return valid value to defaultValue property
		if (kilo) {textbox.defaultValue = str_kilo.replace(',','.') }
		else{textbox.defaultValue = str.replace(',','.')  }		
		//Curr3.value = (textbox.defaultValue)
	}		
}
function _masknopos(textbox,delim,e)
{	
  var CurPos = _getCurPos(e,textbox)
  var str = textbox.value  
  var TmpKey;
  if (window.event){TmpKey = e.keyCode;}	//IE
  else {TmpKey = e.which;}					//Firefox
  if (parseFloat(TmpKey)==9) return false;	//for multiple control move
  if (parseFloat(TmpKey) != 20 && !(parseFloat(TmpKey) > 15 && parseFloat(TmpKey) < 19) && !(parseFloat(TmpKey) > 34 && parseFloat(TmpKey) < 41))
  { 
	var i,k
	var delims = delim.split('|');
    var delimx=false
    for (k=0;k <= str.length -1;k++){
        delimx = false 
        for (i = 0; i <= delims.length-1; i++)  
        {          
          if (str.substring(k,k+1) == delims[i]){
              delimx = true;            
              break;
          }
        }
        if (!delimx) str = str.substring(0,k) + ' '+ str.substring(k+1,str.length)
     }
     textbox.value = _replaceIt(str,' ','')
     _setCurPos(e,CurPos)
  }
}
function _mask(textbox,loc,delim,e,icheck)
{	
  var CurPos = _getCurPos(e,textbox)
  var str = textbox.value  
  var TmpKey;
  if (window.event){TmpKey = e.keyCode;}	//IE
  else {TmpKey = e.which;}					//Firefox
  if (parseFloat(TmpKey)==9) return false;	//for multiple control move
  if (parseFloat(TmpKey) != 20 && !(parseFloat(TmpKey) > 15 && parseFloat(TmpKey) < 19) && !(parseFloat(TmpKey) > 34 && parseFloat(TmpKey) < 41))
  { 
	var i,k
	var locs = loc.split(',');					//--> to each position
	var delims = delim.split('|');
	var delimx
	//----to remove all delim before
	//str = str.replace(/delim/g, '')			// --> '/g' not work for input parameter(delim)
	for (i = 0; i <= delims.length-1; i++)  
	  {
		 str = _replaceIt(str,delims[i],'')
	  }	
	//----group by ','
	for (i = 0; i <= locs.length-1; i++)  
		{
		if(delims.length < i+1){delimx = delimx} 
		else {delimx = delims[i] }
		for (k = 0; k <= str.length; k++)	// remove -1 because for check next string 
			{					
			if (k == locs[i]-1)
				{
				if (str.substring(k, k+1) != delimx)
					{
						str = str.substring(0,k) + delimx + str.substring(k,str.length)
						break;
					}
				}
			}

		}
	//----fix in IE for maxlength
	textbox.value = str.substring(0,textbox.maxLength)  
	//----correct the position of cursor 
	if ( parseFloat(TmpKey) != 8 && parseFloat(TmpKey) !=46) 
	{
		for (i = 0; i <= delims.length-1; i++)  
		  {
			 if (str.substring(CurPos,CurPos+1)==delims[i]) CurPos=CurPos+1 			 
		  }	
	}
	//---------------- optional check
	  if(icheck=='idate')
	  {
		if(_datecheck(textbox,delims[0])=='-1') textbox.value = oValue 
	  }
	  if(icheck=='itime')
	  {
		if(_timecheck(textbox,delims[0])=='-1') textbox.value = oValue 
	  }
	  if(icheck=='ibank')
	  {
		if(_ValidateBankControl(textbox,delims[0]) == '-1' ) 
		  {
			textbox.value = oValue
		  }
		else
		  {
     		textbox.defaultValue = _replaceIt(textbox.value,"-","")
		  }
	  }
	_setCurPos(e,CurPos)
  } 
}
//Return value from Validation check
// -2 : invalid length
// -1 : invalid format
//  1 : ok 
function _datecheck(textbox,delim) //*** FORMAT IS DD/MM/YYYY
{
	var i
	var str = textbox.value  
	var locs = str.split(delim);	
	var bdate,bmonth,byear
	for (i = 0; i <= locs.length-1; i++)  
	{
		if(i==0)
		{	
			if(locs[i].length!=2) return -2;
			bdate = parseFloat(locs[i])	
			if(bdate > 31 || bdate < 1) return -1;
		}
		else if(i==1)
		{
			if(locs[i].length!=2) return -2;
			bmonth = parseFloat(locs[i])	
			if(bmonth > 12 || bmonth < 1) return -1;
		}
		else if(i==2)
		{
			if(locs[i].length!=4) return -2;
			byear = parseFloat(locs[i])	
			if(byear < 1900) return -1;
		}
	}
	if (bmonth==4 || bmonth==6 || bmonth==9 || bmonth==11)
	{	
		if (bdate==31) return -1;
	}
	if (bmonth==2)
	{
		var g=parseInt(byear/4)
		if (isNaN(g)) return -1;
		if (bdate>29) return -1;
		if (bdate==29 && ((byear/4)!=parseInt(byear/4))) return -1;
	}
	return 1;
}
function _timecheck(textbox,delim) //*** FORMAT IS HH:MM
{
	var i
	var str = textbox.value  
	var locs = str.split(delim);	
	var bhour,bminute
	for (i = 0; i <= locs.length-1; i++)  
	{
		if(i==0)
		{	
			if(locs[i].length!=2) return -2;
			bhour = parseFloat(locs[i])	
			if(bhour > 23) return -1;
		}
		else if(i==1)
		{
			if(locs[i].length!=2) return -2;
			bminute = parseFloat(locs[i])	
			if(bminute > 59) return -1;
		}
	}
	return 1;
}
function _percentcheck(textbox,delim) //*** valid value is 0% - 100%
{
	var str = textbox.defaultValue
		if (parseFloat(str) > 100 || parseFloat(str) < 0 ) return -1;
	return 1;
}
function _ValidateBankControl(textbox,delim)
{	//ok 000-1314640-96       
	var mBank = textbox.value
    var st_temp
    var i_del=0
    var i_index
		if((mBank!= "")&&(mBank!=null)){
			st_temp = new String(mBank)
			//remove dash
			i_index = st_temp.indexOf(delim)
			while (i_index > 0)
			{
			  st_temp = st_temp.substring(0,i_index) + st_temp.substring(i_index+1,st_temp.length)
       	      i_index = st_temp.indexOf(delim)
			}
			st_temp1 = new String(st_temp)
			if((st_temp1 != null) && (st_temp1 != "")){
				if(st_temp1.length == 12){
					st_temp1 = st_temp1.substring(0,3)+st_temp1.substring(3,10)
					i_2 = parseFloat(st_temp1)
					i_2 = i_2 % 97
					if (i_2 == 0)
					{
						i_2 = 97
					}
					st_temp1 = st_temp.substring(10,12);
					if (i_2 != parseFloat(st_temp1)){
					    return -1
					}
					else{
					    return 1
					}
				}else{
					return -2
				}
			}
		}
}
function _getCurPos(evtt,dBox)
{
  var pos = 0
  if (window.event) //IE
  {
		var ev = evtt
		ev = window.event
		tr = document.activeElement.createTextRange()
		while (document.selection.createRange().compareEndPoints("StartToStart", tr) > 0) 
		{
			tr.moveStart("character", 1)
			pos++
		}
  }
  else				//Firefox
  {
		pos = dBox.selectionStart
  } 
	return pos;
}
function _setCurPos(ev,curPos)
{
  if (window.event) //IE
  {
	var obj = document.activeElement
	if (obj)
	{
		var tr = obj.createTextRange(curPos)
		if (obj && tr)
		{
			tr.moveStart("character", curPos)
			tr.collapse()
			tr.select()
		}
	}
  }
  else				//Firefox
  {
	var obj = ev.target
	obj.setSelectionRange(curPos,curPos)
  }
}
function _replaceIt(sString, sReplaceThis, sWithThis) 
{ 
	if (sReplaceThis != "" && sReplaceThis != sWithThis) 
	{ 
		var counter = 0; 
		var start = 0; 
		var before = ""; 
		var after = ""; 
		while (counter<sString.length) 
		{ 
			start = sString.indexOf(sReplaceThis, counter); 
			if (start == -1) 
			{ 
				break; 
			} 
			else 
			{ 
				before = sString.substr(0, start); 
				after = sString.substr(start + sReplaceThis.length, sString.length); 
				sString = before + sWithThis + after; 
				counter = before.length + sWithThis.length; 
			} 
		} 
	} 
	return sString; 
} 
function _SetCurrencyValue(textbox,iValue)
{	
	var str = new String(iValue)
	textbox.defaultValue = str.replace(',','.') 
	textbox.value = str.replace('.',',')  //->if not euro style?
}
//Thanks to http://www.w3schools.com/jsref/jsref_indexOf.asp
//May06
//IE6 Browser: onactivate onafterupdate onbeforeactivate onbeforecopy onbeforecut onbeforedeactivate onbeforeeditfocus onbeforepaste onbeforeupdate onblur onchange onclick oncontextmenu oncontrolselect oncopy oncut ondatabinding ondblclick ondeactivate ondisposed ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop onerrorupdate onfilterchange onfocus onfocusin onfocusout onhelp oninit onkeydown onkeypress onkeyup onload onlosecapture onmousedown onmouseenter onmouseleave onmousemove onmouseout onmouseover onmouseup onmousewheel onmove onmoveend onmovestart onpaste onprerender onpropertychange onreadystatechange onresize onresizeend onresizestart onselect onselectstart onserverchange onunload

//SPA 24/04/2007 ADD function for format nn.nnn.nnn,nn
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+'.'+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + ',' + cents)
}

function _dovalidate_date(textboxname)
{
    try{
        if (document.getElementById(textboxname).value == '') return true
        return (_datecheck(document.getElementById(textboxname),'/') =='1')
    }catch(e){
        return true
    }
}
function _dovalidate_time(textboxname)
{
    try{
        if (document.getElementById(textboxname).value == '') return true
        return (_timecheck(document.getElementById(textboxname),':') =='1')
    }catch(e){
        return true
    }
}
// for string before put as param in remotescript
function uManageRemoteError(mResult,mName)
{
    if (mResult.error) {
        alert("Error while loading data from " + mName)
        alert(mResult.value)
        return;
    }   
    return true;
}
// get id from id(separator)othervalue
function getComboID(mcombovalue,mseparate)
{
	var mtempsplit,mText	
	mtempsplit = mcombovalue.split(mseparate)
	mText = new String(mtempsplit[1])
	mText = mText.toUpperCase()	
    
    if (UReplacest(mText," ","") == "") return 0
	if (mtempsplit[0] == "") return 0
	return mtempsplit[0]
}


function UmakestringforCombo(mdata)
{
   var mvdata
    mvdata = rEplace(mdata,"&#39;","'")	
    return  mvdata
}

function UmakestringforReadTextEdit(mdata)
{
    var mvdata
    mvdata = rEplace(mdata,"&#39;","'")
    mvdata = rEplace(mvdata, "&amp;", "&")	
    return  mvdata
}
function UmakestringforRemoteTextEdit(mdata) {
    var mvdata
    mvdata = rEplace(mdata,"'",";#39;")
    mvdata = rEplace(mvdata, "&", ";amp;")
    mvdata = rEplace(mvdata, "+", ";dagger;")
    return  mvdata
}



function UmakeLinkConvertSpace(mlink)
{
    return   mlink.replace(" ","%20"); 
   
}

  function FormatDateMMDDYYYY(mdate)
		 {
		    var mdate  =  mdate.split("/");
			var ppyear = parseFloat(mdate[2])
			var ppmonth = parseFloat(mdate[1])
			var ppday = parseFloat(mdate[0])
			
			var istoday = new Date()				

			ppyear = isNaN(ppyear)?istoday.getFullYear():ppyear
			ppmonth = isNaN(ppmonth)?istoday.getMonth()+1:ppmonth
			ppday = isNaN(ppday)?istoday.getDate():ppday

		 	var disp_Month = (ppmonth < 10) ? "0" + ppmonth : ppmonth;
		 	var disp_Day = (ppday  < 10) ? "0" + ppday  : ppday;
			return  disp_Month + "/" + disp_Day + "/" + ppyear;
		 }	

function _doTriM(mdata)
{
   return rEplace(rEplace(dotrim(mdata),'\r',''),'\n','')
}



function getS(mnumber)
{
  return (mnumber>1)?"s":""
}
function UReplacest(mdata,mst1,mst2)
{
    return rEplace(mdata,mst1,mst2)
}
function ReplaceB(mdata)
{
    return Umakestringfortaskpage(mdata)
}
function uParseStringforRemote(mString)
{
    return rEplace(rEplace(rEplace(mString,"<",";lt;"),">",";gt;"),"&",";amp;")
}
function UReplace(mdata)
{
    return rEplace(mdata," ","")
}
function UmakestringforjavaHtml(mdata)
{
   var mvdata
   mvdata = rEplace(mdata,"<","&#60;")
   mvdata = rEplace(mvdata,">","&#62;")
   mvdata = rEplace(mvdata,"\'","&#39;")   
   mvdata = rEplace(mvdata,'\0xA',"<BR>") 
   return mvdata
}
function UmakestringforjavawithHtml(mdata)
{
   var mvdata
   mvdata = rEplace(mdata,'\'','&#39;')   
   mvdata = rEplace(mdata,'"','&quot;')   
   mvdata = rEplace(mvdata,'\0xA','<BR>') 
   return mvdata
}
function Umakestringforjavalink(mdata)
{
   var mvdata
   mvdata = rEplace(mdata,"\'","&#92;&#39;")
   mvdata = rEplace(mvdata,'\0xA',"&#92;n") 
   mvdata = rEplace(mvdata,'\0xD',"") 
   mvdata = rEplace(mvdata,"\\","&#92;&#92;")  
   mvdata = rEplace(mvdata,'"',"&#34;") 
   return mvdata
}
function Umakestringfortaskpage(mdata)
{
   var mvdata
    mvdata = rEplace(mdata, "&", "&#38;")
    mvdata = rEplace(mvdata, ">", "&#62;")
    mvdata = rEplace(mvdata, "<", "&#60;")
    mvdata = rEplace(mvdata,"\'","&#39;")	
    return mvdata
}
function Umakestringforhyperlink(data)
{
	var mdata
	mdata = rEplace(data,"&#60;",'\0x07')	
	mdata = rEplace(mdata,"&#62;",'\0x09')

	mdata = rEplace(mdata,"<","&#60;")
	mdata = rEplace(mdata,">","&#62;")

	mdata = rEplace(mdata,'\0x07',"<")	
	mdata = rEplace(mdata,'\0x09',">")
	
	mdata = rEplace(mdata,'"',"&quot;")
	mdata = rEplace(mdata,'\0x08'," ")
	return mdata
}
function ChangeComma(data)
{
	return rEplace(data,",",".")
}
function _CheckCompare(data0)
{  
    var returnn = ''
    var data = '0' 
    data = new String(data0)
    //if (isNaN(data)) data = '0'
    data = rEplace(data, ".", ",")
    var kindex = data.indexOf(",")
    var mindex = 0
    if (kindex != -1){
        mindex = data.substring(0,kindex)	
	    if (mindex == "") mindex = 0
        if (data.length != 1){
            var aindex
            aindex = data.substring(data.length-2,data.length)
            
            if (aindex == ",5") data += "0"
            returnn = data.substring(data.length-3,data.length)
        }else{
            returnn = data
        }

        if (returnn == ",25"){
            returnn = 1
        }
        else if (returnn == ",50"){
            returnn = 2
        }
        else if (returnn == ",75"){
            returnn = 3
        }
        else
        {
            returnn = 0
        }
    }
    else
    {
        returnn  = 0
    }
    return returnn 
}
function _CheckCompare2(data0)
{
    var returnn = ''
    var data = '0'
    data = new String(data0)
    //if (isNaN(data)) data = '0'
    data = rEplace(data, ".", ",")
    var kindex = data.indexOf(",")
    var mindex = 0
    if (kindex != -1){
        mindex = data.substring(0,kindex)	
	    if (mindex == "") mindex = 0
        if (data.length != 1){
            var aindex
            aindex = data.substring(data.length-2,data.length)
            
            if (aindex == ",5") data += "0"
            returnn = data.substring(data.length-3,data.length)
        }else{
            returnn = data
        }

        if (returnn == ",25"){
            returnn = mindex + ":15"
        }
        else if (returnn == ",50"){
            returnn = mindex + ":30"
        }
        else if (returnn == ",75"){
            returnn = mindex + ":45"
        }
        else
        {
            returnn = mindex + ":00"
        }
    }
    else
    {
        returnn  = data + ":00"
    }
    return returnn 
}
function rEplace(mdata,mfind,mreplaced)

{
   var mreturn
   var mindex=0
   mreturn = new String(mdata)
   if (mreturn == null) return ''
   if (mreturn == "") return ''
   
   mindex = mreturn.indexOf(mfind,mindex) 
   while (mindex >= 0){

     mreturn = mreturn.substring(0,mindex) + mreplaced + mreturn.substring(mindex+mfind.length,mreturn.length)
     mindex = mreturn.indexOf(mfind,mindex+1)
   }
   return mreturn
}

function CHVALUE(data)
 {   
	if (data == "true" || data == true || data == "True"){return 1}
	else{return 0}
}	

function UReplaceFrenchForAjax(mdata)
{
		var myS = new String(mdata); 
        var i = 0;
        var tmpvalue = 0 
        var mvalue =""
      
        for(i=0;i<=myS.length -1;i++)
        {
          
            tmpvalue = myS.charCodeAt(i)
            mvalue   = myS.charAt(i)            
           
            if(parseFloat(tmpvalue) == 167){myS = myS.replace(mvalue,"%;Azbycx;")}     
      
            else if(parseFloat(tmpvalue) == 201){myS = myS.replace(mvalue,"%;Eacute;")}
            else if(parseFloat(tmpvalue) == 233){myS = myS.replace(mvalue,"%;eacute;")}
            else if(parseFloat(tmpvalue) == 200){myS = myS.replace(mvalue,"%;Egrave;")}

            else if(parseFloat(tmpvalue) == 232){myS = myS.replace(mvalue,"%;egrave;")}
            else if(parseFloat(tmpvalue) == 199){myS = myS.replace(mvalue,"%;Ccedil;")}
            else if(parseFloat(tmpvalue) == 231){myS = myS.replace(mvalue,"%;ccedil;")}

            else if(parseFloat(tmpvalue) == 192){myS = myS.replace(mvalue,"%;Agrave;")}
            else if(parseFloat(tmpvalue) == 224){myS = myS.replace(mvalue,"%;agrave;")}
            else if(parseFloat(tmpvalue) == 202){myS = myS.replace(mvalue,"%;Ecirc;")}

            else if(parseFloat(tmpvalue) == 226){myS = myS.replace(mvalue,"%;acirc;")}
            else if(parseFloat(tmpvalue) == 219){myS = myS.replace(mvalue,"%;Ucirc;")}
            else if(parseFloat(tmpvalue) == 234){myS = myS.replace(mvalue,"%;ecirc;")}

            else if(parseFloat(tmpvalue) == 203){myS = myS.replace(mvalue,"%;Euml;")}
            else if(parseFloat(tmpvalue) == 251){myS = myS.replace(mvalue,"%;ucirc;")}
            else if(parseFloat(tmpvalue) == 217){myS = myS.replace(mvalue,"%;Ugrave;")}

            else if(parseFloat(tmpvalue) == 235){myS = myS.replace(mvalue,"%;euml;")}
            else if(parseFloat(tmpvalue) == 249){myS = myS.replace(mvalue,"%;ugrave;")}
            else if(parseFloat(tmpvalue) == 194){myS = myS.replace(mvalue,"%;Acirc;")}
            
            else if(parseFloat(tmpvalue) == 211){myS = myS.replace(mvalue,"%;Oacute;")}
            else if(parseFloat(tmpvalue) == 243){myS = myS.replace(mvalue,"%;oacute;")}
            else if(parseFloat(tmpvalue) == 212){myS = myS.replace(mvalue,"%;Ocirc;")}
            else if(parseFloat(tmpvalue) == 244){myS = myS.replace(mvalue,"%;ocirc;")}
            
            else if(parseFloat(tmpvalue) == 43){myS = myS.replace(mvalue,"%;BzbycxB;")} //+
           
            
           if(parseFloat(tmpvalue) == 167){myS = myS.replace(mvalue,"%;Aacute;")}     
            else if(parseFloat(tmpvalue) == 193){myS = myS.replace(mvalue,"%;aacute;")}
            else if(parseFloat(tmpvalue) == 225){myS = myS.replace(mvalue,"%;Auml;")}
            else if(parseFloat(tmpvalue) == 196){myS = myS.replace(mvalue,"%;auml;")}
            else if(parseFloat(tmpvalue) == 205){myS = myS.replace(mvalue,"%;Iacute;")}
            
            else if(parseFloat(tmpvalue) == 237){myS = myS.replace(mvalue,"%;iacute;")}
            else if(parseFloat(tmpvalue) == 206){myS = myS.replace(mvalue,"%;Icirc;")}
            else if(parseFloat(tmpvalue) == 204){myS = myS.replace(mvalue,"%;Igrave;")}
            else if(parseFloat(tmpvalue) == 207){myS = myS.replace(mvalue,"%;Iuml;")}
            else if(parseFloat(tmpvalue) == 218){myS = myS.replace(mvalue,"%;Uacute;")}
            else if(parseFloat(tmpvalue) == 250){myS = myS.replace(mvalue,"%;uacute;")}
            
            else if(parseFloat(tmpvalue) == 221){myS = myS.replace(mvalue,"%;Yacute;")}
            else if(parseFloat(tmpvalue) == 253){myS = myS.replace(mvalue,"%;yacute;")}
            else if(parseFloat(tmpvalue) == 376){myS = myS.replace(mvalue,"%;Yuml;")}
            else if(parseFloat(tmpvalue) == 255){myS = myS.replace(mvalue,"%;yuml;")}


        }
        
    return myS

}//   ****************************************************************************
//   PARAMETERS IN : Keyword for cookies
//   RETURN VALUE  : value of keyword 
//   PURPOSE       : getvalue from cookies keyworkd
//   CALL FROM     : none
//   Creation Date : 1999/03/17 (KPO)
//   Modification  : Date          User  Comment							Version
//                    1999/03/18    KPO   modify to many value
//   ****************************************************************************
   function Getuse(Keyword)
   {
      var st_temp
      var st_temp1
      var st_temp2
      var i_1
      var i_2
      var st_ret
      st_ret = ""
      st_temp = String(document.cookie)
      st_temp1 = st_temp.split(";")
      for (i_1=0;i_1<st_temp1.length;i_1++)
      {
         i_2 = st_temp1[i_1].indexOf("Frontware:")
         if (i_2 >= 0)
         {
            st_temp = st_temp1[i_1]
            st_temp1 = st_temp.split("Frontware:")
            st_temp = String(st_temp1[1])
            break;
         }
      }
      st_temp1 = st_temp.split("][")
      for (i_1=0;i_1<st_temp1.length;i_1++)
      {
         i_2 = st_temp1[i_1].indexOf(Keyword)
         if (i_2 >= 0)
         {            
           st_temp = st_temp1[i_1]
           st_temp1 = st_temp.split("::")
           st_ret = st_temp1[1]           
           break;
         }
      }
      return st_ret
   }   
//   ****************************************************************************
//   PARAMETERS IN : Keyword for cookies and value to setting in cookies
//   RETURN VALUE  : none
//   PURPOSE       : settvalue to cookies 
//   CALL FROM     : none
//   Creation Date : 1999/03/17 (KPO)
//   Modification  : Date          User  Comment							Version
//                    1999/03/18    KPO   modify to many value
//   ****************************************************************************
   function Setuse(Keyword,Value)
   {
     var st_temp
     var st_temp1
     var st_temp2
     var i_1
     var i_2
     st_temp = document.cookie
     st_temp1 = st_temp.split(";")
     i_2 = st_temp.indexOf("Frontware:")
     if (i_2 >= 0)
     {
      for (i_1=0;i_1<st_temp1.length;i_1++)
      {
         i_2 = st_temp1[i_1].indexOf("Frontware:")
         if (i_2 >= 0)
         {
           st_temp = st_temp1[i_1]
           break;
         }
      }
     }
     else
     {     
        st_temp = "Frontware:"
     }
     //
     st_temp1 = st_temp.split("Frontware:")     
     st_temp = st_temp1[1]
     st_temp1 = st_temp.split("][")
     st_temp = "Frontware:"
     i_2 = 0
     if (st_temp1.length > 1)
     {
       for (i_1=0;i_1<st_temp1.length;i_1++)
       {
          st_temp2 = st_temp1[i_1].split("::")          
          if (st_temp2[0] == Keyword)
          {
             st_temp += (Keyword+"::"+Value+"][")             
             i_2++
          }
          else
          { 
             if (st_temp1[i_1] != "") st_temp += (st_temp1[i_1]+"][")
          }
       }
     }
     if (i_2 == 0)
     {
        st_temp += (Keyword+"::"+Value)+"]["
     }
     document.cookie = st_temp + ";expires=Sun, 31 Jan 2100 23:59:59 UTC;path=/"
   }
   function Set_Cookiess(name, value, expires, path, domain, secure) {
       var today = new Date();
       var expires_date = "Sun, 31 Jan 2100 23:59:59 UTC";
       document.cookie = name + "=" + escape(value) +
        ((expires) ? ";expires=" + expires_date : "") +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
   }

   function Get_Cookiess(check_name) {
       var a_all_cookies = document.cookie.split(';');
       var a_temp_cookie = '';
       var cookie_name = '';
       var cookie_value = '';
       var b_cookie_found = false; // set boolean t/f default f

       for (i = 0; i < a_all_cookies.length; i++) {

           a_temp_cookie = a_all_cookies[i].split('=');

           cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

           if (cookie_name == check_name) {
               b_cookie_found = true;
               if (a_temp_cookie.length > 1) {
                   cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
               }

               return cookie_value;
               break;
           }
           a_temp_cookie = null;
           cookie_name = '';
       }
       if (!b_cookie_found) {
           return null;
       }
   }function initTabs()
{
	var sets = document.getElementsByTagName("div");
	for (var i = 0; i < sets.length; i++)
	{
		if (sets[i].className.indexOf("tabset") != -1)
		{
			var tabs = [];
			var links = sets[i].getElementsByTagName("a");
			for (var j = 0; j < links.length; j++)
			{
				if (links[j].className.indexOf("tab") != -1)
				{
					tabs.push(links[j]);
					links[j].tabs = tabs;
					var c = document.getElementById(links[j].href.substr(links[j].href.indexOf("#") + 1));

					//reset all tabs on start
					if (c) if (links[j].className.indexOf("active") != -1){
						 c.style.display = "block";
						 links[j].parentNode.parentNode.parentNode.className = "tabset "+ links[j].href.substr(links[j].href.indexOf("#") + 1)+"-switch";
						}
					else
						{c.style.display = "none";}
							

					links[j].onclick = function ()
					{
						var c = document.getElementById(this.href.substr(this.href.indexOf("#") + 1));
						if (c)
						{
							//reset all tabs before change
							for (var i = 0; i < this.tabs.length; i++)
							{
								var tab = document.getElementById(this.tabs[i].href.substr(this.tabs[i].href.indexOf("#") + 1));
								if (tab)
								{
									tab.style.display = "none";
								}
								this.tabs[i].className = this.tabs[i].className.replace("active", "");
							}
							this.className += " active";
							c.style.display = "block";
							this.parentNode.parentNode.parentNode.className = "tabset "+ this.href.substr(this.href.indexOf("#") + 1)+"-switch";
							return false;
						}
					}
				}
			}
		}
	}
}

if (window.addEventListener)
	window.addEventListener("load", initTabs, false);
else if (window.attachEvent && !window.opera)
	window.attachEvent("onload", initTabs);
function ShowLayerById(id){ document.getElementById(id).style.visibility = "visible"; if ((document.getElementById(id).tagName=="tr") && (navigator.userAgent.toLowerCase().indexOf("msie")<0)) { document.getElementById(id).style.display = "table-row"; } else { document.getElementById(id).style.display = "block"; }}
function HideLayerById(id){ document.getElementById(id).style.visibility = "hidden"; document.getElementById(id).style.display = "none"; }/*
 * jQuery 1.2.3 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $
 * $Rev: 4663 $
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i<M;i++)7((11=18[i])!=V)Q(L a 1p 11){7(b===11[a])6w;7(5c&&11[a]&&1o 11[a]=="3V"&&b[a]&&!11[a].15)b[a]=E.1s(b[a],11[a]);N 7(11[a]!=10)b[a]=11[a]}K b};L F="3N"+(1B 3v()).3L(),6t=0,5b={};L H=/z-?4X|86-?84|1w|6k|7Z-?1R/i;E.1s({7Y:J(a){1e.$=D;7(a)1e.3N=w;K E},1q:J(a){K!!a&&1o a!="25"&&!a.12&&a.1k!=1M&&/J/i.17(a+"")},3E:J(a){K a.1F&&!a.1h||a.28&&a.2i&&!a.2i.1h},5g:J(a){a=E.3g(a);7(a){L b=T.3S("6f")[0]||T.1F,1m=T.3s("1m");1m.U="1u/4m";7(E.14.1d)1m.1u=a;N 1m.38(T.5r(a));b.38(1m);b.34(1m)}},12:J(b,a){K b.12&&b.12.2E()==a.2E()},1T:{},O:J(c,d,b){c=c==1e?5b:c;L a=c[F];7(!a)a=c[F]=++6t;7(d&&!E.1T[a])E.1T[a]={};7(b!=10)E.1T[a][d]=b;K d?E.1T[a][d]:a},35:J(c,b){c=c==1e?5b:c;L a=c[F];7(b){7(E.1T[a]){2V E.1T[a][b];b="";Q(b 1p E.1T[a])1Q;7(!b)E.35(c)}}N{1S{2V c[F]}1X(e){7(c.52)c.52(F)}2V E.1T[a]}},R:J(c,a,b){7(b){7(c.M==10){Q(L d 1p c)7(a.1i(c[d],b)===S)1Q}N Q(L i=0,M=c.M;i<M;i++)7(a.1i(c[i],b)===S)1Q}N{7(c.M==10){Q(L d 1p c)7(a.1P(c[d],d,c[d])===S)1Q}N Q(L i=0,M=c.M,1A=c[0];i<M&&a.1P(1A,i,1A)!==S;1A=c[++i]){}}K c},1l:J(b,a,c,i,d){7(E.1q(a))a=a.1P(b,i);K a&&a.1k==51&&c=="2o"&&!H.17(d)?a+"2S":a},1t:{1b:J(c,b){E.R((b||"").23(/\\s+/),J(i,a){7(c.15==1&&!E.1t.3Y(c.1t,a))c.1t+=(c.1t?" ":"")+a})},1V:J(c,b){7(c.15==1)c.1t=b!=10?E.3y(c.1t.23(/\\s+/),J(a){K!E.1t.3Y(b,a)}).6a(" "):""},3Y:J(b,a){K E.33(a,(b.1t||b).3X().23(/\\s+/))>-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i<f.M;i++)7(f[i]!=V)2C[i].W.19=f[i]}7(k=="1w"&&d=="")d="1"}N 7(e.4n){L g=k.1r(/\\-(\\w)/g,J(a,b){K b.2E()});d=e.4n[k]||e.4n[g];7(!/^\\d+(2S)?$/i.17(d)&&/^\\d/.17(d)){L l=e.W.26,3K=e.3K.26;e.3K.26=e.4n.26;e.W.26=d||0;d=e.W.7f+"2S";e.W.26=l;e.3K.26=3K}}K d},4a:J(l,h){L k=[];h=h||T;7(1o h.3s==\'10\')h=h.2i||h[0]&&h[0].2i||T;E.R(l,J(i,d){7(!d)K;7(d.1k==51)d=d.3X();7(1o d=="25"){d=d.1r(/(<(\\w+)[^>]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+"></"+c+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>","</2k>"]||!f.1f("<9M")&&[1,"<73>","</73>"]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>","</1O>"]||!f.1f("<4v")&&[2,"<1O><1U>","</1U></1O>"]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>","</4v></1U></1O>"]||!f.1f("<7e")&&[2,"<1O><1U></1U><6V>","</6V></1O>"]||E.14.1d&&[1,"1x<1x>","</1x>"]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i<M;i++)a.1g(b[i]);N a=b.2K(0);K a},33:J(b,a){Q(L i=0,M=a.M;i<M;i++)7(a[i]==b)K i;K-1},37:J(a,b){7(E.14.1d){Q(L i=0;b[i];i++)7(b[i].15!=8)a.1g(b[i])}N Q(L i=0;b[i];i++)a.1g(b[i]);K a},57:J(a){L c=[],2r={};1S{Q(L i=0,M=a.M;i<M;i++){L b=E.O(a[i]);7(!2r[b]){2r[b]=P;c.1g(a[i])}}}1X(e){c=a}K c},3y:J(c,a,d){L b=[];Q(L i=0,M=c.M;i<M;i++)7(!d&&a(c[i],i)||d&&!a(c[i],i))b.1g(c[i]);K b},2c:J(d,a){L c=[];Q(L i=0,M=d.M;i<M;i++){L b=a(d[i],i);7(b!==V&&b!=10){7(b.1k!=1M)b=[b];c=c.71(b)}}K c}});L v=8Y.8W.2h();E.14={5K:(v.1D(/.+(?:8T|8S|8R|8O)[\\/: ]([\\d.]+)/)||[])[1],2d:/77/.17(v),2z:/2z/.17(v),1d:/1d/.17(v)&&!/2z/.17(v),48:/48/.17(v)&&!/(8L|77)/.17(v)};L y=E.14.1d?"6H":"75";E.1s({8I:!E.14.1d||T.6F=="79",46:{"Q":"8F","8E":"1t","4g":y,75:y,6H:y,3d:"3d",1t:"1t",1A:"1A",2Y:"2Y",3k:"3k",8C:"8B",2p:"2p",8A:"8z",3T:"3T",6C:"6C",28:"28",12:"12"}});E.R({6B:J(a){K a.1a},8y:J(a){K E.4u(a,"1a")},8x:J(a){K E.2Z(a,2,"2B")},8v:J(a){K E.2Z(a,2,"4t")},8u:J(a){K E.4u(a,"2B")},8t:J(a){K E.4u(a,"4t")},8s:J(a){K E.5i(a.1a.1C,a)},8r:J(a){K E.5i(a.1C)},6z:J(a){K E.12(a,"8q")?a.8o||a.8n.T:E.2I(a.3p)}},J(c,d){E.1n[c]=J(b){L a=E.2c(6,d);7(b&&1o b=="25")a=E.3e(b,a);K 6.2F(E.57(a))}});E.R({6y:"3t",8m:"6q",3o:"6o",8l:"5a",8k:"6S"},J(c,b){E.1n[c]=J(){L a=18;K 6.R(J(){Q(L i=0,M=a.M;i<M;i++)E(a[i])[b](6)})}});E.R({8j:J(a){E.1J(6,a,"");7(6.15==1)6.52(a)},8i:J(a){E.1t.1b(6,a)},8h:J(a){E.1t.1V(6,a)},8g:J(a){E.1t[E.1t.3Y(6,a)?"1V":"1b"](6,a)},1V:J(a){7(!a||E.1E(a,[6]).r.M){E("*",6).1b(6).R(J(){E.16.1V(6);E.35(6)});7(6.1a)6.1a.34(6)}},4x:J(){E(">*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K i<m[3]-0},88:J(a,i,m){K i>m[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i<T.4L.M;i++)7(T.4L[i].2Y){3z(18.3R,0);K}E.21()},S);7(E.14.2d){L a;(J(){7(E.2Q)K;7(T.39!="5V"&&T.39!="1y"){3z(18.3R,0);K}7(a===10)a=E("W, 7a[7A=7z]").M;7(T.4L.M!=a){3z(18.3R,0);K}E.21()})()}E.16.1b(1e,"3U",E.21)}E.R(("7y,7x,3U,7w,5d,4H,4V,7v,"+"7G,7u,7t,4P,4O,7s,2k,"+"58,7K,7q,7p,3a").23(","),J(i,b){E.1n[b]=J(a){K a?6.2j(b,a):6.1N(b)}});L I=J(a,c){L b=a.4S;2b(b&&b!=c)1S{b=b.1a}1X(3a){b=c}K b==c};E(1e).2j("4H",J(){E("*").1b(T).3w()});E.1n.1s({3U:J(g,d,c){7(E.1q(g))K 6.2j("3U",g);L e=g.1f(" ");7(e>=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i<a.M;i++)7(!a[i]())a.72(i--,1);7(!a.M){6I(E.3W);E.3W=V}},13)}},1G:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1G=P;6.45(0,6.2m());7(6.1l=="27"||6.1l=="1R")6.Y.W[6.1l]="8N";E(6.Y).1G()},1I:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1I=P;6.45(6.2m(),0)},30:J(a){L t=(1B 3v()).3L();7(a||t>6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{}))/*
 * Thickbox 3.1 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/

var tb_pathToImage = "/Theme/images/1x1.gif";
//var tb_pathToImage = "";

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init

// sno : change charecter $ is jQuery to call because conflict with mootools.js

jQuery.noConflict();

jQuery(document).ready(function(){   
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	//imgLoader.src = tb_pathToImage;
});






//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
	jQuery(domChunk).click(function(){
	var t = this.title || this.name || null;
	var a = this.href || this.alt;
	var g = this.rel || false;
	tb_show(t,a,g);
	this.blur();
	return false;
	});
}
var ArrCall = []
var _temp_window_settimeout = null
function CallThickBox(CallStr)
{
    if(ArrCall.length > 0)
    {
      tb_remove()
    }
    _temp_window_settimeout = window.setTimeout('tb_show("","' + CallStr + '","");', 300)
    ArrCall.push(CallStr)
}
function ClooseThickBox()
{
    window.clearTimeout(_temp_window_settimeout)
    if (ArrCall.length > 0) {
        tb_remove()
    }
}
function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
    var RegWarns = /U_DivOverlay1/;
    var string2 = url;
    var matchPos2 = string2.search(RegWarns);
    var RegExps = /helpvhs/;
    var string1 = url;
    var matchPos1 = string1.search(RegExps);
    var Regsugg = /UDivSuggestion/;
    var string3 = url;
    var matchPos3 = string3.search(Regsugg);
    var legalstat = /LegalStatus/;
    var matchPos4 = string3.search(legalstat);
    var TickboxLoad = /TickboxLoad/;
    var matchPos5 = string3.search(TickboxLoad);
   	try {
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			jQuery("body","html").css({height: "100%", width: "100%"});
			jQuery("html").css("overflow","hidden");
			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
				jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
				document.getElementById("TB_overlay").style.position = "absolute";
				document.getElementById("TB_overlay").style.height = (document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
				document.getElementById("TB_HideSelect").style.position = "absolute";
				document.getElementById("TB_HideSelect").style.height = (document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
				document.getElementById("TB_window").style.position = "absolute";
				if (matchPos1 != -1) {
				    document.getElementById("TB_window").style.marginTop = "-240px";
				}
				else if (matchPos3 != -1) {				
				    document.getElementById("TB_window").style.marginTop = "-240px";
				}
				else if (matchPos2 ==41) {
				   document.getElementById("TB_window").style.marginTop = "-240px";
				}
				else {
				       document.getElementById("TB_window").style.marginTop = (0 - parseInt(document.getElementById("TB_window").offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
				}
				//document.getElementById("TB_window").style.marginTop = (0 - parseInt(document.getElementById("TB_window").offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
				jQuery("#TB_overlay").click(tb_remove);
			}
		}else{//all others
			if(document.getElementById("TB_overlay") === null){
				jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
				jQuery("#TB_overlay").click(tb_remove);
			}
		}
		
		if(tb_detectMacXFF()){
			jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
		}else{
			jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
		}
		
		if(caption===null){caption="";}
		jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
		document.getElementById("TB_load").style.position = "absolute";
		document.getElementById("TB_load").style.marginTop = (0 - parseInt(document.getElementById("TB_load").offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
		jQuery('#TB_load').show();//show loader
		
		var baseURL;
	   if(url.indexOf("?")!==-1){ //ff there is a query string involved
			baseURL = url.substr(0, url.indexOf("?"));
	   }else{ 
	   		baseURL = url;
	   }
	   
	   var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
	   var urlType = baseURL.toLowerCase().match(urlString);

		if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
				
			TB_PrevCaption = "";
			TB_PrevURL = "";
			TB_PrevHTML = "";
			TB_NextCaption = "";
			TB_NextURL = "";
			TB_NextHTML = "";
			TB_imageCount = "";
			TB_FoundURL = false;
			if(imageGroup){
				TB_TempArray = jQuery("a[@rel="+imageGroup+"]").get();
				for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
					var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
						if (!(TB_TempArray[TB_Counter].href == url)) {						
							if (TB_FoundURL) {
								TB_NextCaption = TB_TempArray[TB_Counter].title;
								TB_NextURL = TB_TempArray[TB_Counter].href;
								TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>Next &gt;</a></span>";
							} else {
								TB_PrevCaption = TB_TempArray[TB_Counter].title;
								TB_PrevURL = TB_TempArray[TB_Counter].href;
								TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>&lt; Prev</a></span>";
							}
						} else {
							TB_FoundURL = true;
							TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);											
						}
				}
			}

			imgPreloader = new Image();
			imgPreloader.onload = function(){		
			imgPreloader.onload = null;
				
			// Resizing large images - orginal by Christian Montoya edited by me.
			var pagesize = tb_getPageSize();
			var x = pagesize[0] - 150;
			var y = pagesize[1] - 150;
			var imageWidth = imgPreloader.width;
			var imageHeight = imgPreloader.height;
			if (imageWidth > x) {
				imageHeight = imageHeight * (x / imageWidth); 
				imageWidth = x; 
				if (imageHeight > y) { 
					imageWidth = imageWidth * (y / imageHeight); 
					imageHeight = y; 
				}
			} else if (imageHeight > y) { 
				imageWidth = imageWidth * (y / imageHeight); 
				imageHeight = y; 
				if (imageWidth > x) { 
					imageHeight = imageHeight * (x / imageWidth); 
					imageWidth = x;
				}
			}
			// End Resizing
			
			TB_WIDTH = imageWidth + 30;
			TB_HEIGHT = imageHeight + 60;
			jQuery("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div>"); 		
			
			jQuery("#TB_closeWindowButton").click(tb_remove);
			
			if (!(TB_PrevHTML === "")) {
				function goPrev(){
					if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);}
					jQuery("#TB_window").remove();
					jQuery("body").append("<div id='TB_window'></div>");
					tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
					return false;	
				}
				jQuery("#TB_prev").click(goPrev);
			}
			
			if (!(TB_NextHTML === "")) {		
				function goNext(){
					jQuery("#TB_window").remove();
					jQuery("body").append("<div id='TB_window'></div>");
					tb_show(TB_NextCaption, TB_NextURL, imageGroup);				
					return false;	
				}
				jQuery("#TB_next").click(goNext);
				
			}

			document.onkeydown = function(e){ 	
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				} else if(keycode == 190){ // display previous image
					if(!(TB_NextHTML == "")){
						document.onkeydown = "";
						goNext();
					}
				} else if(keycode == 188){ // display next image
					if(!(TB_PrevHTML == "")){
						document.onkeydown = "";
						goPrev();
					}
				}	
			};
			
			tb_position();
			jQuery("#TB_load").remove();
			jQuery("#TB_ImageOff").click(tb_remove);
			jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show
			};
			
			imgPreloader.src = url;
		}else{//code to show html
			
			var queryString = url.replace(/^[^\?]+\??/,'');
			var params = tb_parseQuery(queryString);
			
			TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
			TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL

			if (matchPos4 == 41 || matchPos5 == 40) {
			    ajaxContentW = TB_WIDTH - 20;
			    ajaxContentH = TB_HEIGHT - 25;
			}
			else {
			    ajaxContentW = TB_WIDTH - 30;
			    ajaxContentH = TB_HEIGHT - 45;
			}
			

			if (url.indexOf('TB_iframe') != -1) {// either iframe or ajax window
			 
					urlNoQuery = url.split('TB_');
					jQuery("#TB_iframeContent").remove();
					if(params['modal'] != "true"){//iframe no modal
						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
					}else{//iframe modal
					jQuery("#TB_overlay").unbind();
						jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
					}
	} else {// not an iframe, ajax
	
					if(jQuery("#TB_window").css("display") != "block"){
						if(params['modal'] != "true"){//ajax no modal
						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
						}else{//ajax modal
						jQuery("#TB_overlay").unbind();
						jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");	
						}
		} else {//this means the window is already up, we are just loading new content via ajax
		
						jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
						jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
						jQuery("#TB_ajaxContent")[0].scrollTop = 0;
						jQuery("#TB_ajaxWindowTitle").html(caption);
					}
			}
					
			jQuery("#TB_closeWindowButton").click(tb_remove);
			
				if(url.indexOf('TB_inline') != -1){	
					jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
					jQuery("#TB_window").unload(function () {
						jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
					});
					tb_position();
					jQuery("#TB_load").remove();
					jQuery("#TB_window").css({display:"block"}); 
				}else if(url.indexOf('TB_iframe') != -1){
					tb_position();
					if(jQuery.browser.safari){//safari needs help because it will not fire iframe onload
						jQuery("#TB_load").remove();
						jQuery("#TB_window").css({display:"block"});
					}
				}else{
					jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
						tb_position();
						jQuery("#TB_load").remove();
						tb_init("#TB_ajaxContent a.thickbox");
						jQuery("#TB_window").css({display:"block"});
					});
				}
			
		}

		if(!params['modal']){
			document.onkeyup = function(e){ 	
				if (e == null) { // ie
					keycode = event.keyCode;
				} else { // mozilla
					keycode = e.which;
				}
				if(keycode == 27){ // close
					tb_remove();
				}	
			};
		}
		
	} catch(e) {
		//nothing here
	}
}

//helper functions below
function tb_showIframe(){
	jQuery("#TB_load").remove();
	jQuery("#TB_window").css({display:"block"});
}

function tb_remove() {
 	jQuery("#TB_imageOff").unbind("click");
	jQuery("#TB_closeWindowButton").unbind("click");
	jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
	jQuery("#TB_load").remove();
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		jQuery("body","html").css({height: "auto", width: "auto"});
		jQuery("html").css("overflow","");
	}
	document.onkeydown = "";
	document.onkeyup = "";
	ArrCall.length = 0
	return false;
}

function tb_position() {
jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
	if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
		jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
	}
}

function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function tb_getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = [w,h];
	return arrayPageSize;
}

function tb_detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}


//***********************************************
// DHTML Calendar
//***********************************************
// kpo 05/01/2006 updated fix compate firefox 1.5
// sno 08/06/2006 adding params for translate the calendar
//
//*** how to use
//1) include this tag
//<script type="text/javascript" src="library\Calendar.js"></script>
//
//2) use by create this text tag
//   <input onkeyup="javascript:return _mask(this,'3,6','/',event);" onkeypress ="javascript:return _keypressed(event,this);" onpaste="javascript:return _bpaste(event)" onblur="javascript:return _CheckLost(this,'idate','/','mandatorymessage');" maxlength = "10" style="width:80px;BACKGROUND-COLOR: #ffffff;cursor:hand;" name="TextDSSI" type="text" id="TextDSSI" onclick="javascript:C_C_OpenCalendar(this,'divfrom')" />
//   - _mask(this,'3,6','/',event);                         = format xx/xx/xxxx / at position 3 and 6
//   - _CheckLost(this,'idate','/','mandatorymessage');"    = idate mean check date mandatory
//                                                            mandatorymessage - message when date is not valid 
//   - C_C_OpenCalendar(this,'divfrom')                     = divfrom name/id of table td where to show the calendar
//
//3) create td where calendar will position. 
//  <table cellpadding = "0" cellspacing = "0"><tr><td id = "divfrom" name = "divform"></td></tr></table>
//
//4) put this tag at the end of page
//<script language="javascript">_C_InsertTable(DayCaption,janmonthcaption,febmonthcaption,marmonthcaption,
//              aprmonthcaption,maymonthcaption,junmonthcaption,julmonthcaption,augmonthcaption,
//              sepmonthcaption,octmonthcaption,novmonthcaption,decmonthcaption,evalfunction)</script>
//
//   - DayCaption  MTWTFSS 
//   - janmonthcaption  January,Jan.. 
//   - evalfunction - function name to execute when select the date .eg, docalendar()
//5) include calendar.css
//***********************************************

        var _C_DayInMilliseconds = 24 * 60 * 60 * 1000;
		var _C_TodaysDate = new Date();
		var _C_SelectedDate =   _C_TodaysDate;
		var _C_ColumnDayMapping = new  Array( 0, 1, 2, 3, 4, 5, 6 ); 
		var _C_previousYear =  _C_SelectedDate.getFullYear();
		var _C_ie5=document.all && !window.opera;
		var _C_Holder="";
		var _C_HolderLayer = "__HOLDER_LAY";
		var _C_Previous_Holder= _C_HolderLayer;
		var _C_Month = "_C_Month"
		var _C_year = "_C_Year"

        var _CONST_YearRangeStart = _C_previousYear - 9
        var _CONST_YearRangeEnd = _C_previousYear + 10
        
        var _C_YearRangeStart = _CONST_YearRangeStart
        var _C_YearRangeEnd = _CONST_YearRangeEnd
	    var _C_FunctionAddress
	    var _C_FunctionAddressExit
	    var _C_Hideme
	    var _C_Hidemevis
	    
function _C_onEval()
        {
 	        try{
 	            eval(_C_FunctionAddress)
 	        }catch(e){
 	            alert(e.message)
 	        }       
        }	    
function _C_onEvalExit()
        {
 	        try{
 	            eval(_C_FunctionAddressExit)
 	        }catch(e){
 	            alert(e.message)
 	        }       
        }	    

function _C_onLoadCalendar(NameTextbox,mYear,mMonth,mDay)
		{     
										
 		this._C_PublicNameTextbox =  NameTextbox;
		this._C_PublicCheckSelect = 0;
		this._C_PublicTmpYear = mYear;
		this._C_PublicTmpMonth = mMonth;
		this._C_PublicTmpDay = mDay;
		_C_ShowCalendar(mYear,mMonth, mDay)
		}
		
function _C_ShowCalendar(pYear, pMonth, pMonthDay)
		 {  
		 this._C_PublicDay = pMonthDay;
		 	pYear  = parseInt( pYear ); 
		    pYear = (isNaN( pYear ) || pYear < 1599 || pYear > 2999) ? _C_TodaysDate.getFullYear() : pYear;
		 	pMonth = parseInt( pMonth ); 
			pMonth = isNaN( pMonth ) ? (_C_TodaysDate.getMonth() + 1) : pMonth;
		 	pMonthDay = parseInt( pMonthDay ); 
			pMonthDay = isNaN( pMonthDay ) ? _C_TodaysDate.getDate() : pMonthDay;
			_C_previousYear = pYear;
			
			
			
			if(this._C_PublicCheckSelect == 0 )
					{ 
					document.getElementById(_C_PublicNameTextbox).value = _C_formatDate(this._C_PublicTmpYear,this._C_PublicTmpMonth,this._C_PublicTmpDay);
					this._C_PublicCheckSelect = 2
					
					}
			else if(this._C_PublicCheckSelect == 1 )
					{   
						document.getElementById(this._C_PublicNameTextbox).value =  _C_formatDate(pYear,pMonth,pMonthDay);
						this._C_PublicCheckSelect = 0;
					}
		 	var FirstDayOfMonth = new Date(), FirstDayOfNextMonth = new Date(), LastDayOfMonth = new Date();
			FirstDayOfMonth.setFullYear( pYear, pMonth - 1, 0 );
		    if(pMonth < 12) FirstDayOfNextMonth.setFullYear( pYear, pMonth, 1 );
		 	    else FirstDayOfNextMonth.setFullYear( pYear + 1, 0, 1 );
		 	    LastDayOfMonth.setTime( FirstDayOfNextMonth.getTime() - _C_DayInMilliseconds );
		 	    var dayNo = 0;
		 	    for( var r = 0; r < 6; r++ )
		 	    {   
		 		    for(var c = 0; c < 7; c++)
		 		    {
		 			    var td = document.getElementById("GridTD_" + r + "_" + c);
    		 			
		 			    td.innerHTML = "&nbsp;"; 					    
						td.className = 'FWCalendar_text'
    		 			
		 			    if( dayNo == 0 )
		 				    if ( ( (FirstDayOfMonth.getDay()) ) == (_C_ColumnDayMapping[c]  ) )
		 					    dayNo = 1;
    						
		 			    if( dayNo > 0 && dayNo <= LastDayOfMonth.getDate() )
		 			    {
		 				  
							td.innerHTML = "<a class='CalendarLink' href ='javascript:_C_SelectDay("+pYear+","+pMonth+","+dayNo+")'>"+ dayNo + "</a>"+"&nbsp;&nbsp;";
    						
		 				    if( (_C_TodaysDate.getFullYear() == pYear) && (_C_TodaysDate.getMonth() == pMonth - 1) && (_C_TodaysDate.getDate() == dayNo) )
		 				    {
 							
		 				    }
    								
		 				    if( pMonthDay == dayNo )
		 				    {
								td.className='FWCalendar_BgYellow' 							  
		 				    }
    		 						 				
		 				    dayNo++;
		 			    }
		 		    }
		 	    }
		 }
		
		
 function _C_formatDate(pYear,pMonth,pMonthDay)
		 {
			var ppyear = parseFloat(pYear)
			var ppmonth = parseFloat(pMonth)
			var ppday = parseFloat(pMonthDay)
			var istoday = new Date()				

			ppyear = isNaN(ppyear)?istoday.getFullYear():ppyear
			ppmonth = isNaN(ppmonth)?istoday.getMonth()+1:ppmonth
			ppday = isNaN(ppday)?istoday.getDate():ppday

		 	var disp_Month = (ppmonth < 10) ? "0" + ppmonth : ppmonth;
		 	var disp_Day = (ppday  < 10) ? "0" + ppday  : ppday;
			document.getElementById(_C_Month).selectedIndex = ppmonth -1;
			return disp_Day + "/" + disp_Month + "/" + ppyear;
		 }		
					
function _C_PositionCalendar(e, mholder)
		{
				this.Calobj= document.getElementById(mholder);
				var mtemp=""
				if (_C_Previous_Holder != "") {
				   this.prevCalobj= document.getElementById(_C_Previous_Holder);
				   mtemp = prevCalobj.innerHTML 
				   prevCalobj.innerHTML = "" 
				}
				Calobj.innerHTML = mtemp
                _C_Previous_Holder = mholder                            				
		}
function C_C_Keep(mShowYN)
{
    var _C_Hideme0
    var _C_Hideme1
    var _C_Hidemevis0
    if ((_C_Hideme == null) || (_C_Hideme == '')) return;
    _C_Hideme0 = _C_Hideme.split(";")    
    _C_Hidemevis0 = _C_Hidemevis.split(";")
    var i_for 
    for (i_for=0;i_for<_C_Hideme0.length;i_for++){
        if (_C_Hideme0[i_for] != null){
            _C_Hideme1 = document.getElementById(_C_Hideme0[i_for])
            try{			
            _C_Hideme1.style.visibility = mShowYN?_C_Hidemevis0[i_for]:'hidden'
            }catch(e){
            }    
        }
    }
}		
function C_C_OpenCalendar(e,mholder,mhideme,mevalfunc,mstartedyear,mNextYear,mevalfuncexit)
		{   
		    try{
		    _C_YearRangeStart = parseFloat(mstartedyear)
		    }catch(e){
		    }
		    if (isNaN(_C_YearRangeStart)) _C_YearRangeStart = _CONST_YearRangeStart
		    
		    //if define nextyear then use nextyear		    
		    if (isNaN(mNextYear)){
		        _C_YearRangeEnd = _C_YearRangeStart + 10
		    }else{
		        try{
		        _C_YearRangeEnd = parseFloat(mNextYear)
		        }catch(e){
		        }
		    }
		    if (isNaN(_C_YearRangeEnd)) _C_YearRangeEnd = _CONST_YearRangeEnd
		    
		    try{
		        _C_FunctionAddress = mevalfunc
		        _C_FunctionAddressExit = mevalfuncexit
		        if (mhideme != null)
		        {
		            if (mhideme != ''){
                    var _C_Hideme0
			        _C_Hideme = mhideme
                    _C_Hideme0 = _C_Hideme.split(";")    
			        _C_Hidemevis = ''
                    var i_for 
                    for (i_for=0;i_for<_C_Hideme0.length;i_for++){
                        if (_C_Hideme0[i_for] != null){
                            _C_Hideme1 = document.getElementById(_C_Hideme0[i_for])
                            try{			
                            _C_Hidemevis = _C_Hidemevis + _C_Hideme1.style.visibility + ';'
                            }catch(e){
                            }    
                        }
                    }
                    }
                }
            }catch(e){
                alert(e.message)
            }
            try{    
				C_C_ExitCalendar()
				eval(e.value);
				_C_PositionCalendar(e,mholder)
				var Data=e.value;
				var TmpDataString = new String(Data);
				var DataString = TmpDataString.split("/");
				var mYear   = parseFloat(DataString[2]);
				var mMonth = parseFloat(DataString[1]);
				var mDay    = parseFloat(DataString[0]);	
				var test = document.getElementById(_C_year);
				var istoday = new Date()				
				if (isNaN(mYear)) mYear = istoday.getFullYear()
				_C_FillYearCombo(mYear)
				
				_C_onLoadCalendar(e.id,mYear,mMonth,mDay);
				_C_MM_showHideLayers('_C_Layer1','','show')
                C_C_Keep(false)
            }catch(e){
                alert(e.message)
            }
		}
function _C_FillYearCombo(mYear)
{
    var _defyear = 0
    var _comboindex=0
	for(var i=_C_YearRangeStart;i<=_C_YearRangeEnd;i++){
		document.getElementById(_C_year).options[_comboindex] = new Option(i,i);
		if (i == mYear) _defyear = _comboindex
		_comboindex++
    }
	document.getElementById(_C_year).selectedIndex  = _defyear

}		
function _C_SelectDay(pYear,pMonth,dayNo)
		{  
		    this._C_PublicCheckSelect = 1  
			_C_ShowCalendar(pYear,pMonth,dayNo)
			_C_MM_showHideLayers('_C_Layer1','','hide')
			_C_onEvalExit()
			C_C_Keep(true)
			this._C_PublicTmpYear = pYear
			this._C_PublicTmpMonth = pMonth
			this._C_PublicTmpDay = dayNo
    	    _C_onEval()				
		}
function C_C_CheckMonth(data)
        { 				
			        this._C_PublicCheckSelect = 2
				        var VMonth
				        var IndexMonth
						var IndexTmp

					        IndexMonth  = document.getElementById(_C_Month).selectedIndex 
				        if(data==1 )
					        {
										IndexTmp = document.getElementById(_C_Month).selectedIndex
										IndexTmp =IndexTmp + 1
										if (IndexTmp == 12)
										{
										IndexTmp = 0
										}
								     document.getElementById(_C_Month).selectedIndex  = IndexTmp;
        								
								        if(IndexMonth == 11)
									        {
									        _C_YearChanged(1)
									        document.getElementById(_C_Month).selectedIndex  = 0
									        }
					        }
				        else if(data == 0  )
					        { 
									        document.getElementById(_C_Month).selectedIndex -= 1
									        if(IndexMonth == 0)
										        {
										        _C_YearChanged(-1)
										        document.getElementById(_C_Month).selectedIndex  = 11
									        }
					        }
        				
				        C_C_MonthOrYearChanged()

        }
		 
function C_C_MonthOrYearChanged()
		{ 
		_C_ShowCalendar(  document.getElementById(_C_year).value,   document.getElementById(_C_Month).selectedIndex + 1, this._C_PublicDay );

		}
function  C_C_OrYearChanged()
        {  
	        _C_ShowCalendar(document.getElementById(_C_year).value  ,   document.getElementById(_C_Month).selectedIndex + 1, this._C_PublicDay );
        }
					
					 
function _C_YearChanged( howMuch )
		{  
			C_C_RefreshYear(this._C_PublicDay,document.getElementById(_C_Month).value,document.getElementById(_C_year).value) //RefreshYear 
			document.getElementById(_C_year).value = parseInt( document.getElementById(_C_year).value) + parseInt(howMuch);			
			C_C_MonthOrYearChanged();
		}
function C_C_RefreshYear(Nday,Nmonth,Nyear)
		{  
				var mYear   = parseFloat(Nyear);
				var mMonth = parseFloat(Nmonth);
				var mDay    = parseFloat(Nday);
				var test = document.getElementById(_C_year);
                _C_FillYearCombo(mYear)
		}	
			
function _C_getDateObject( dateString )
            {
			            var arr = Array();
			            var valid = false;
			            var day = -1, month = -1, year = -1;
			            if( dateString.indexOf("/") > 0 )
					            {
						            valid = true;
						            arr   = dateString.split("/");
						            day = parseInt(arr[0],10);
						            if(arr.length > 0) month = parseInt(arr[1],10);
						            if(arr.length > 1) year  = parseInt(arr[2],10);
					            }
			            else if( dateString.indexOf("-") > 0 )
					            {
						            valid = true;
						            arr   = dateString.split("-");
						            day = parseInt(arr[2],10);
						            if(arr.length > 0) month = parseInt(arr[1],10);
						            if(arr.length > 1) year  = parseInt(arr[0],10);
					            }
			            if(! valid ) return _C_TodaysDate;
			            day = parseInt(arr[0],10);
			            if(arr.length > 0) month = parseInt(arr[1],10);
			            if(arr.length > 1) year  = parseInt(arr[2],10);
			            var theDate = new Date();
			            theDate.setFullYear( year, month - 1, day );
			            return theDate;
            }
		
function _C_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=_C_MM_findObj(n,d.layers[i].document);
					  if(!x && d.getElementById) x=d.getElementById(n); return x;
				}

function _C_MM_showHideLayers() 
				{ //v6.0
					  var i,p,v,obj,args=_C_MM_showHideLayers.arguments;
					  for (i=0; i<(args.length-2); i+=3) if ((obj=_C_MM_findObj(args[i]))!=null) { v=args[i+2];
						if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
						obj.visibility=v; }
				}

function C_C_ExitCalendar()
				{   // 2 
				if(this._C_PublicCheckSelect == 2)
						{
						//	document.getElementById(this._C_PublicNameTextbox).value = _C_formatDate(this._C_PublicTmpYear,this._C_PublicTmpMonth,this._C_PublicTmpDay);
						}
				_C_MM_showHideLayers('_C_Layer1','','hide')
				C_C_Keep(true)
                _C_onEvalExit()				
				}

function C_C_SetToday()
{  
	var theToDate = new Date();
	var mDay 
    var mMonth
	var mYear
	
		mDay   = theToDate.getDate()
		mMonth = theToDate.getMonth()+ 1
		mYear  = theToDate.getFullYear()

		this._C_PublicCheckSelect = 0;
		this._C_PublicTmpYear = mYear;
		this._C_PublicTmpMonth = mMonth;
		this._C_PublicTmpDay = mDay;
		
	// for select present year 
	for(var i=1;i<document.getElementById(_C_year).length;i++){
		if(document.getElementById(_C_year).options[i-1].value == mYear)
		{
		    document.getElementById(_C_year).selectedIndex  = i-1;
		}
    }
	_C_ShowCalendar(mYear,mMonth,mDay)		
}

function _C_InsertTable(mHeadDay,Ja,Fe,Mar,Ap,May,Jun,Jul,Au,Se,Oc,No,De,LabelToday,TheConTaiNer)
{   var CheckMonth 
	var CheckDay 
	var HDay1
	var HDay2
	var HDay3
	var HDay4
	var HDay5
	var HDay6
	var HDay7
	

	if(Ja == "" || Ja == null){ CheckMonth = 1}
	else if(Fe == ""  || Fe  == null){ CheckMonth =1}
	else if(Mar == "" || Mar == null){ CheckMonth = 1}
	else if(Ap == ""  || Ap  == null){ CheckMonth = 1}
	else if(May == "" || May == null){ CheckMonth = 1}
	else if(Jun == "" || Jun == null){ CheckMonth = 1}
	else if(Jul == "" || Jul == null){ CheckMonth = 1}
	else if(Au == ""  || Au  == null){ CheckMonth = 1}
	else if(Se == ""  || Se  == null){ CheckMonth = 1}
	else if(Oc == ""  || Oc  == null){ CheckMonth = 1}
	else if(No == ""  || No  == null){ CheckMonth = 1}
	else if(De == ""  || De  == null){ CheckMonth = 1}
    else { CheckMonth = 0}
    
    if (mHeadDay != null){
	    if (mHeadDay.length != 7){
	        CheckDay = 1
	    }
	    else
		{
		    HDay1 = mHeadDay.substring(0,1)
	        HDay2 = mHeadDay.substring(1,2)
	        HDay3 = mHeadDay.substring(2,3)
	        HDay4 = mHeadDay.substring(3,4)
	        HDay5 = mHeadDay.substring(4,5)
	        HDay6 = mHeadDay.substring(5,6)
	        HDay7 = mHeadDay.substring(6,7)
		    CheckDay = 0
	    }
    }
	if (CheckMonth == 1 || CheckDay == 1 )
	{
		//----------Default Month ----------
		Ja  = "January"
		Fe  = "February"
		Mar = "March"
		Ap  = "April"
		May = "May"
		Jun = "June"
		Jul = "July"
		Au  = "August"
		Se  = "September"
		Oc  = "October"
		No  = "November"
		De  = "December"
		//--------- Default Head Day -------
	    HDay1 = "M"
	    HDay2 = "T"
	    HDay3 = "W"
	    HDay4 = "T"
	    HDay5 = "F"
	    HDay6 = "S"
	    HDay7 = "S"
	}


		if (LabelToday == null || LabelToday == "" ){LabelToday = "Go Today"}
 

	var InlineHTML = "<table style = \"position:absolute;visibility : none \" ><tr><td id=\"" + _C_HolderLayer + "\" >";			
	    InlineHTML += "<div id=\"_C_Layer1\"  style=\"position:absolute;width:230px; height:200px; z-index:1; overflow: hidden; visibility : hidden\">";
	    InlineHTML += "<table id = \"__table1\" width=\"200\" height=\"200\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"FWCalendar_Table\">";
		    InlineHTML += "<tr>";
		        InlineHTML += "<td width=\"100%\" height=\"5\" cellspacing = 0 cellpadding = 0 align = center>";
						InlineHTML += "<table width=\"100\" cellspacing = 0 cellpadding = 0 >";
							InlineHTML += "<tr class=\"_FWCalendar_TD\">";
							    InlineHTML += "<td width=\"8\" align=\"center\" class=\"_FWCalendar_smalltextcalendar\"  onClick=\"javascript:C_C_CheckMonth(0)\"  style=\"cursor:pointer;cursor:hand\"  title=\"Previous\">&lt;&lt;</td>";
								InlineHTML += "<td colspan=\"4\" nowrap>";
								    InlineHTML += "<select name=\""+ _C_Month + "\"  id=\""+ _C_Month + "\" onchange=\"C_C_MonthOrYearChanged()\" >";
									    InlineHTML += "<option value=\"01\">"+ Ja +"</option>";
									    InlineHTML += "<option value=\"02\">"+ Fe +"</option>";
									    InlineHTML += "<option value=\"03\">"+ Mar +"</option>";
									    InlineHTML += "<option value=\"04\">"+ Ap +"</option>";
									    InlineHTML += "<option value=\"05\">"+ May +"</option>";
									    InlineHTML += "<option value=\"06\">"+ Jun +"</option>";
									    InlineHTML += "<option value=\"07\">"+ Jul +"</option>";
									    InlineHTML += "<option value=\"08\">"+ Au +"</option>";
									    InlineHTML += "<option value=\"09\">"+ Se +"</option>";
									    InlineHTML += "<option value=\"10\">"+ Oc +"</option>";
									    InlineHTML += "<option value=\"11\">"+ No +"</option>";
									    InlineHTML += "<option value=\"12\">"+ De +"</option>";
									InlineHTML +="</select>";
									InlineHTML += "<select name=\""+ _C_year + "\" class=\"_FWCalendar_inputbox2\" id=\""+ _C_year + "\" onchange=\"javascript:C_C_OrYearChanged()\"  style=\"width:55px\"></select>";
								InlineHTML +="</td>";
								InlineHTML += "<td  align=\"center\"   onClick=\"javascript:C_C_CheckMonth(1)\"  style=\"cursor:pointer;cursor:hand\"  title=\"Next\">&gt;&gt;</td>";
								InlineHTML +="<td align=\"right\"   onClick=\"javascript:C_C_ExitCalendar()\" style=\"cursor:pointer;cursor:hand\"   title=\"Close\">&nbsp;<strong>X</strong></td>";
							InlineHTML +="</tr>";							
						InlineHTML +=  "</td>";
  			InlineHTML +=  "</tr>"; 
		InlineHTML += "</table>";
		InlineHTML += "</td></tr><tr><td align = center>";
		InlineHTML += "<table id = \"_table1\" width=\"200\" height=\"5\" border=\"0\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\" class=\"FWCalendar_Table_in\"  >";
	        InlineHTML +=  "<tr align=\"center\"  class=\"FWCalendar_TD\">";
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay1 +"</td>";//Mon
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay2 +"</td>";//Tue
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay3 +"</td>";//Wed
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay4 +"</td>";//Thu
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay5 +"</td>";//Fri
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay6 +"</td>";//Sat
	            InlineHTML += "<td width=\"25\" align=\"center\">&nbsp;"+ HDay7 +"</td>"; //Sun
		    InlineHTML += "</tr>";							
			for(var i = 0; i < 6; i++)
		    {
			    InlineHTML += "<tr align=\"right\">";
			    for(var j = 0; j < 7; j++)
				    InlineHTML += "<td  id='GridTD_"+ i +"_"+ j +"'>&nbsp;</td>";
			    InlineHTML += "</tr>";
		    }
		    InlineHTML +=   "<tr><td></td></tr>"; 

				InlineHTML +=  "<tr>";
				InlineHTML +=  "<td colspan=\"7\" align=\"center\" >";
				InlineHTML +=  "<a class=\'FWButtoncalendarToday\' title=\'"+ LabelToday +"\' href=\'javascript:C_C_SetToday()\'>"+LabelToday+"</a>";
				InlineHTML +=  "</td>";
				InlineHTML +=  "</tr>";


 	    InlineHTML += "</table>";
 	    InlineHTML += "</div></td></tr></table>";
        
        if (TheConTaiNer == null){
            document.writeln(InlineHTML);
        }else{
            document.getElementById(TheConTaiNer).innerHTML = InlineHTML
        }
}
var CreateWebApp = {
    WebKit: navigator.userAgent.match(/WebKit/),
    Gecko: !navigator.userAgent.match(/WebKit/) && navigator.userAgent.match(/Gecko/),
    IE: navigator.userAgent.match(/MSIE/),
    Mac: navigator.userAgent.match(/Mac/),
    WebKit4: navigator.userAgent.match(/WebKit\/4/),
    WebKit5: navigator.userAgent.match(/WebKit\/5/),
    Opera: !!window.opera,

    h: function(o) {
        var s = 0;
        for (i = 0; i < o.length; i++) {
            s += o.charCodeAt(i);
        };
        var base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
        var h = base.substr(s & 63, 1);
        while (s > 63) {
            s >>= 6;
            h = base.substr(s & 63, 1) + h;
        };
        return h;
    },

    y: function(o) {
        return o.owner && o.key && !o.key.indexOf(CreateWebApp.h(o.owner));
    },
    w: function() {
        return "<a style='padding: 2px 0; font-size:9px !important;display:block !important;color:#000 !important;background:#fff !important;visibility:visible !important;text-indent:0px !important; text-decoration:underline;' href='http://createwebapp.com/purchase'>Powered&nbsp;By&nbsp;CreateWebApp.com</a>";
    },

    b: function(text) {
        return text.substring(text.indexOf('{') + 1, text.lastIndexOf('}'));
    },

    focus: function(t) {

        t.focus();

        var l = t.value.length;

        if (CreateWebApp.IE) {
            var r = t.createTextRange();
            r.moveStart('character', l);
            r.moveEnd('character', l);
            r.select();
        } else {
            t.setSelectionRange(l, l);
        };

    }

};
//end of var CreateWebApp
var Autocomplete = Class.create();

Object.extend(Autocomplete, {

    u: function(e) {
        while (e = e.parentNode) {
            if (e.style) {
                if (e.style.overflow == 'hidden') e.style.overflow = 'visible';
                if (e.style.tableLayout == 'fixed') e.style.tableLayout = 'auto';
            }
        }
    },


    removeWatermark: function(name, key) {
        var cls = Autocomplete;
        cls.owner = name + ' Autocomplete';
        cls.key = key;
    },

    findPopup: function(v) {
        var e = Event.element(v);
        e = e ? e : v;
        while (e && e.parentNode && !$(e).hasClassName("autocomplete_list")) e = e.parentNode;
        if (e == null) return null;
        return e.parentNode && e.id ? e : null;
    },

    I: function(e) {
        var v = e.getAttribute("onselect");
        return (v != null) && (v != undefined);
    },

    F: function(v, p) {
        var e = Event.element(v);
        while (e.parentNode && (e != p) && (!Autocomplete.I(e))) e = e.parentNode;
        return (e.parentNode && (e != p)) ? e : null;
    },

    process: function(e, o) {
        if (!$(e).hasClassName('usual')) o.request(e.getAttribute('href'));
    },

    PT: function(p) {
        var i = p.id.indexOf("_autocomplete_list");
        if (i > -1) {
            var t = p.id.substr(0, i);
            return $(t) ? $(t) : document.getElementsByName(t)[0];
        };
        return null;
    },

    PO: function(p) {
        return $(Autocomplete.inst).find(function(i) { return i.L.id == p.id; });
    },

    C: function(v) {
        var cls = Autocomplete;
        var e = Event.element(v);
        cls.inst.each(function(i) {
            if (i.text != e && i.L.L2 != e) setTimeout(i.hide.bind(i), 0);
        });
    },

    L: function() {
        var c = CreateWebApp;
        var ca = c.Autocomplete;
        var p = document.createElement('ol');
        p.className = 'autocomplete_text_busy';
        var s = p.style;
        s.position = 'absolute';
        s.overflow = 'scroll';
        s.top = s.left = '-9999px';
        s.width = '100%';
        s.height = '40px';
        document.body.appendChild(p);
        if (c.IE) c.selfName = self.name;
        c.p = p;
        if (CreateWebApp.WebKit4) {
            $(Autocomplete.inst).each(function(i) {
                var icon = $(document.createElement("div"));
                document.body.appendChild(icon);
                icon.style.position = 'absolute';
                icon.addClassName("autocomplete_text").setStyle({
                    width: "15px"
                });
                Position.clone(i.text, $(icon), {
                    setLeft: true, setTop: true, setWidth: false, setHeight: true, offsetTop: 0, offsetLeft: i.text.getWidth() - icon.getWidth() - 1
                });
                i.S = icon;
            });
        };
        var scr = document.createElement('ol');
        var inn = document.createElement('ol');
        scr.style.position = 'absolute';
        scr.style.top = scr.style.left = '-9999px';
        scr.style.width = '40px';
        scr.style.overflow = 'scroll';
        inn.style.width = '80px';
        scr.appendChild(inn);
        document.body.appendChild(scr);
        c.sw = scr.offsetWidth - scr.clientWidth;
        document.body.removeChild(document.body.lastChild);
    },

    inst: new Array(), name: '', key: '', getStyle: function(e) {
        if (!CreateWebApp.WebKit && document.defaultView && document.defaultView.getComputedStyle) return document.defaultView.getComputedStyle(e, null);
        else return e.currentStyle || e.style;
    },
    getInt: function(s) {
        var i = parseInt(s);
        return isNaN(i) ? 0 : i;
    }
});

Event.observe(window, 'load', Autocomplete.L);
Autocomplete.prototype = {
    $c: false, init: false, T: 0, i: -1, d: 1, last_value: "", custom_uri: "", bw: 1, initialize: function(text, f, options) {
        this.S = this.text = $(text) ? $(text) : document.getElementsByName(text)[0];
        if ((this.text == null) || (f == null) || (typeof f != 'function')) return;
        this.text.setAttribute('autocomplete', 'off');
        this.onchange = this.text.onchange;
        text.onchange = function() {
        };
        this.setOptions(options);
        this.getURL = f;
        var ml = function() {
            var l = document.createElement('ol');
            var s = l.style;
            s.position = "absolute";
            s.top = s.left = "-9999px";
            return $(l).addClassName('autocomplete_list')
        };
        this.L = ml();
        this.L2 = ml();
        this.L.id = text + "_autocomplete_list";
        var cls = Autocomplete;
        cls.inst.push(this);
        if (CreateWebApp.y(cls)) {
            new Insertion.After(this.text, CreateWebApp.w());
            cls.u(this.text);
        };
        this.cls = cls;
        this.r();
    },

    V: function() {
        return this.L.style.display != "none";
    },

    setOptions: function(options) {
        this.options = {
            width: 'auto', frequency: 0.36, minChars: 1, delimChars: ', ', size: 10, select_first: 1
        };
        Object.extend(this.options, options || {});
    },

    r: function() {
        this._k = this.k.bindAsEventListener(this);
        this.$r = this.request.bind(this);
        var t = this.text;
        $(t).addClassName("autocomplete_text");
        if (CreateWebApp.Mac) {
            t._ac = this;
            t.onkeypress = function(e) { return !this._ac.$s; };
        };

        var O = Event.observe;

        O(t, 'keydown', this.st.bind(this));

        if (CreateWebApp.WebKit) Event._observeAndCache(t, "keypress", this._k, false);

        else Event.observe(t, "keypress", this._k);

        O(t, 'dblclick', this.$r);

        O(t, 'keyup', function() {

            clearTimeout(this.$u)

        } .bind(this));

        O(t, 'focus', this.$f.bind(this));

        O(t, 'blur', this.blur.bind(this));

        if (this.cls.inst.length == 1) {

            O(document, 'click', this.cls.C);


        };

        var e = t;

        while (e = e.parentNode) if (e.style && (e.style.overflow == 'scroll' || e.style.overflow == 'auto')) {

            this.scrollable = this.scrollable ? this.scrollable : e;

            O(e, 'scroll', this.onScroll.bind(this));


        }

    }, st: function() {

        this.status = "on";

        this.$s = false;


    }, onScroll: function() {

        var s = this.scrollable;

        if (s) {

            var p = this.t();

            var o = Position.cumulativeOffset(s);

            if (p[1] >= o[1] && p[1] < o[1] + s.offsetHeight && p[0] >= o[0] && p[0] < o[0] + s.offsetWidth && this.V()) this.s();

            else this.hide();


        }

    }, t: function() {

        var p = Position.page(this.text);

        return [p[0] + (CreateWebApp.IE ? this.text.scrollLeft : 0) + (document.documentElement.scrollLeft || document.body.scrollLeft), p[1] + (document.documentElement.scrollTop || document.body.scrollTop)];


    }, iolv: function() {

        var d = this.options.delimChars, v = encodeURIComponent(this.text.value), i, j, k = 0;

        for (i = v.length - 1;

i >= 0;

i--) {

            for (j = 0;

j < d.length;

j++) if (v.charAt(i) == d.charAt(j)) {

                k = i + 1;

                break;


            };

            if (k) break;


        };

        return k;


    }, page: function(n) {

        var e = $A(document.getElementsByClassName(n)).find(function(e) {

            return this.cls.findPopup(e) == this.L;


        } .bind(this));

        if (e && e.tagName && e.tagName.toUpperCase() == 'A') this.cls.process(e, this);

        else {

            var s = this.options.size;

            var i = this.i;

            var l = this.items.length;

            if (n == "page_up") {

                if (i >= s) this.focus(i - s);

                else this.focus(0);


            };

            if (n == "page_down") {

                if (i + s < l) this.focus(i + s);

                else this.focus(l - 1)

            };


        }

    }, $f: function() {

        if (this.status != 'on') {

            this.status = 'on';

            if (!this.V() && this.text.value == '') this.request();


        }

    }, blur: function() {

        if (!this.V()) {

            this.status = 'off';

            setTimeout(function() {

                if (this.status == 'off') this.stop();


            } .bind(this), 10);


        }

    }, stop: function() {

        this.c();

        this.stopIndicator();

        this.hide();


    }, c: function() {

        if ((this.latest) && (this.latest.transport.readyState != 4)) this.latest.transport.abort();


    }, k: function(e) {

        var c = e.keyCode;

        var t = e.type;

        if (c == 9 || c == 13) {

            if (this.V() || !this.$c) {

                if ((c == 13) && (this.$c) && (this.i > -1)) {

                    Event.stop(e);

                    this.$s = true;


                };

                if (this.V()) this.z();


            };

            return;


        };

        if (c == 38 || c == 40 || c == 63232 || c == 63233) {

            if (this.$c) {

                (c == 38) || (c == 63232) ? this.U() : this.D();

                Event.stop(e);


            };


        };

        if (c == 33 || c == 34 || c == 63276 || c == 63277) {

            if (this.$c) (c == 33) || (c == 63276) ? this.page('page_up') : this.page('page_down');


        };

        if (c == 27) this.stop();

        if (c == 38 || c == 40 || c == 33 || c == 34 || c == 27 || c == 63232 || c == 63233 || c == 63276 || c == 63277) {

            Event.stop(e);

            return;


        };

        switch (c) {

            case 9: case 37: case 39: case 35: case 36: case 45: case 16: case 17: case 18: break;

            default: this.custom_uri = "";

                clearTimeout(this.T);

                this.c();

                setTimeout(function() {

                    this.T = setTimeout(this.$r, this.options.frequency * 1000);


                } .bind(this), 10);


        }

    }, z: function() {

        var z = function(s) {

            s = CreateWebApp.b(s.toString()).replace(/[\Wvar]/gi, "");

            var x = 0;

            for (var i = 0;

i < s.length;

i++) x = (x + s.charCodeAt(i) % 10 + i % 10) % 1986;

            return x;


        };

        var c = this.cls;

        var C = CreateWebApp;

        var m = this.G();

        this.stop();

        var x = z(C.y) + z(C.w) + z(C.h) + z(c.u) + z(c.prototype.initialize);

        if ((m == undefined) || (m == null)) return;

        var s = m.getAttribute('o' + 'nsel' + 'ect').replace("this.request(", "this.request(1");

        if (m && (x % 1000 == 840)) {

            try {

                eval(s);


            } catch (e) {

                this.onError(e)

            };

            C.focus(this.text);

            if (this.onchange) {

                setTimeout(function() {

                    this.onchange.bind(this.text)();


                } .bind(this), 10);


            }

        };


    }, G: function() {

        return this.items ? this.items[this.i] : null;


    }, focus: function(i) {

        var C = CreateWebApp;

        if ((this.i == i) || (!this.$c)) return;

        $(this.L).show();

        Element.removeClassName(this.G(), 'current_item');

        this.i = i;

        var m = this.G();

        if (!m) return;

        $(m).addClassName('current_item');

        var size = this.options.size;

        var u = this.L;

        var h = this.H(this.L);

        var mt = m.offsetTop;

        var btw = parseInt(Element.getStyle(u, 'border-top-width'));

        var bbw = parseInt(Element.getStyle(u, 'border-bottom-width'));

        if (C.WebKit4) mt -= btw;

        if ((C.Gecko) && (mt < u.scrollTop)) mt += btw;

        if (C.IE) {

            mt -= parseInt($(m).getStyle("padding-top")) + this.bw;

            if (document.compatMode == "BackCompat") h -= btw + bbw;


        };

        if (mt < u.scrollTop) u.scrollTop = mt + (mt == 0 ? 0 : this.bw);

        if (mt + m.offsetHeight - u.scrollTop > h) u.scrollTop = mt + m.offsetHeight - h - this.bw;

        try {

            var z = m.getAttribute('onfocus');

            if (C.IE) z = C.b(z.toString());

            eval(z);


        } catch (e) {


        }

    }, U: function() {

        if (this.i > -1) this.focus(this.i - 1);


    }, D: function() {

        if (this.i < this.items.length - 1) this.focus(this.i + 1);


    }, beforeRequest: function() {


    }, bR: function() {

        if (!this.init) {

            this.init = true;

            this.L.onscroll = function() {

                CreateWebApp.focus(this.text);


            } .bind(this);

            document.body.appendChild(this.L);

            document.body.appendChild(this.L2);

            if (navigator.userAgent.match('MSIE 6.')) {

                var i = document.createElement('iframe');

                i.src = 'javascript:false;';

                var is = i.style;

                is.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity = 0)";

                is.position = 'absolute';

                is.margin = '0px';

                Element.hide(i);

                this.F = i;

                document.body.appendChild(this.F);


            };


        };

        this.last_value = this.value.substr(this.iolv());

        var l = this.last_value ? this.last_value.length : this.text.value.length;

        return l >= this.options.minChars;


    }, request: function(u) {

        var z = typeof u != "string";

        this.value = encodeURIComponent(this.text.value);

        if (u == 1) {

            u = this.url;

            this.status = "on";


        } else {

            if (z) {

                u = this.getURL();

                if (u == undefined) {

                    this.stop();

                    return;


                }

            };


        };

        if (this.status == 'on' && this.bR()) {

            this.onLoad();

            this.url = u;

            this.latest = new Ajax.Updater(this.L2, u + this.custom_uri, {

                method: 'get', onComplete: this.onComplete.bind(this), onFailure: this.onFailure.bind(this)

            });


        } else this.stop();


    }, onError: function() {


    }, onFailure: function() {


    }, onLoad: function() {

        this.$c = 0;

        this.i = -1;

        this.startIndicator();


    }, onComplete: function() {

        setTimeout(this.d.bind(this, arguments[0]), 10);


    }, d: function() {

        var l = this.latest;

        var tx = l.transport;

        if ((this.status == 'on') && (tx == arguments[0])) {

            if (this.latest.url != this.url + this.custom_uri) return;

            this.$c = true;

            if (!l.success) l.success = l.responseIsSuccess;

            try {

                if ((typeof tx.status != "unknown") && l.success()) {


                } else {

                    this.L2.innerHTML = "<li onselect=';'>Request failed: " + tx.status + ' ' + (tx.statusText ? tx.statusText : '') + '</li>';


                };

                this.L2.style.width = this.L2.style.height = "auto";

                var i = 0;

                $A(this.L2.getElementsByTagName("li")).each(function(c) {

                    if (this.cls.I(c)) {

                        c.className = "item";

                        if (CreateWebApp.IE && (++i <= this.options.size) && !c.getElementsByTagName("span").length) c.innerHTML = "<span style='padding:0'></span>" + c.innerHTML;


                    }

                } .bind(this));

                this.$c = true;

                this.s(this.options.select_first);


            } catch (e) {


            };


        };


    }, offset: function(e) {

        var o = 0;

        var C = CreateWebApp;

        if (C.Gecko || C.WebKit || (C.IE && (document.compatMode != 'BackCompat'))) {

            var bl = 'border-left-width';

            var br = 'border-right-width';

            var pl = 'padding-left';

            var pr = 'padding-right';

            var f = new Function('e', 'p', 'return Autocomplete.getInt(Element.getStyle(e, p));');

            o = f(e, bl) + f(e, br) + f(e, pl) + f(e, pr);


        };

        return o;


    }, H: function(L) {

        var C = CreateWebApp;

        var s = this.options.size;

        var A = $A(L.getElementsByTagName("li"));

        var l = A.size();

        var m = A[(l > s ? s : l) - 1];

        var h = m.offsetTop + m.offsetHeight;

        var btw = parseInt(Element.getStyle(L, 'border-top-width'));

        var bbw = parseInt(Element.getStyle(L, 'border-bottom-width'));

        if (C.IE) {

            if (document.compatMode == "BackCompat") h += btw + bbw;

            h -= parseInt($(m).getStyle("padding-top")) + this.bw;


        };

        if (C.WebKit4) h -= btw;

        return h - this.bw;


    }, s: function(ft) {

        this.status = 'on';

        var z = function(s) {

            s = CreateWebApp.b(s.toString()).replace(/[\Wvar]/gi, "");

            var z = 0;

            for (var i = 0;

i < s.length;

i++) z = (z + s.charCodeAt(i) % 10 + i % 10) % 1986;

            return z;


        };

        var c = this.cls;

        var C = CreateWebApp;

        var x = z(C.y) + z(C.w) + z(C.h) + z(c.u) + z(this.initialize);

        if (x / 2 != 2920) return;

        var p = this.t();

        var th = this.text.offsetHeight;

        if (this.status == 'on') {

            var pt = p[1] + th;

            if (this.status != 'on') return;

            var w = "auto";

            {

                var i = 720;

                if (CreateWebApp.Opera) this.L2.style.width = i + "px";

                var oh = this.L2.offsetHeight;

                if (CreateWebApp.WebKit) {

                    w = this.L2.offsetWidth;


                } else {

                    var l = this.text.offsetWidth, h = i;

                    do {

                        i = Math.ceil((l + h) / 2);

                        this.L2.style.width = i + "px";

                        if (this.L2.offsetHeight > oh) l = i + 1;

                        else h = i;


                    } while (h - l >= 20);

                    w = h;

                    this.L2.style.width = h + "px";


                };


            };

            if (this.L2.offsetWidth < this.text.offsetWidth) w = this.text.offsetWidth - this.offset(this.L2);

            var h = "auto";

            this.items = new Array();

            if (this.L.innerHTML != this.L2.innerHTML) {

                this.L.innerHTML = this.L2.innerHTML;

                this.i = -1;

                $A($(this.L).getElementsByTagName("li")).each(function(x) {

                    if (x.className != "item") return;

                    var i = this.items.length;

                    x.onmouseover = function(i) {

                        this.focus(i)

                    } .bind(this, i);

                    x.onclick = function(i) {

                        this.i = i;

                        this.z()

                    } .bind(this, i);

                    this.items.push(x);


                } .bind(this));

                Element.addClassName(this.items[0], "first_item");


            };

            if (this.items.length > this.options.size) {

                this.L.style.overflow = 'auto';

                w = parseInt(w) + CreateWebApp.sw;

                h = this.H(this.L2) + "px";


            };

            if (this.items.length) {

                Element.setStyle(this.L, {

                    top: pt + 'px', left: p[0] + 'px', width: w + "px", height: h

                });

                $(this.L).show();

                if (ft) setTimeout(this.D.bind(this), 0);

                if (this.F) {

                    self.name = CreateWebApp.selfName;

                    Element.setStyle(this.F, {

                        top: pt + 'px', left: p[0] + 'px', width: w, height: this.L.getHeight()

                    });

                    Element.show(this.F);


                };


            };

            this.stopIndicator();

            if (CreateWebApp.IE) {

                setTimeout(function() {

                    $A(this.items).each(function(i) {

                        if (!i.getElementsByTagName("span").length) {

                            i.innerHTML = "<span style='padding:0'></span>" + i.innerHTML;


                        }

                    })

                } .bind(this), 0);


            }

        }

    }, hide: function() {

        if (this.V()) {

            Element.hide(this.L);

            if (this.F) Element.hide(this.F);

            if (CreateWebApp.WebKit) {

                var t = this.text;

                t.blur();

                t.focus();


            };


        }

    }, startIndicator: function() {

        $(this.S).addClassName("autocomplete_text_busy");


    }, stopIndicator: function() {

        $(this.S).removeClassName("autocomplete_text_busy");


    }

};

var AutoComplete = Autocomplete;

try {

    var a = "autocomplete.js";

    var b = "license.js";

    var p = $A(document.getElementsByTagName("script")).find(function(s) {

        return s.src.indexOf(a) > -1;


    }).src.replace(a, b);

    new Ajax.Request(p, {

        method: "get", asynchronous: false

    });


} catch (e) {


};
// Created on 2008-12-25 by Somchai
// Asked by Bachir by email on 2008-12-18
// This ucsuggestions.js is called by UControl/USuggestions.aspx


//----Declaration public variable---
var P_UCSUGGESTIONS_PATH_WEBSERVER;
var P_UCSUGGESTIONS_LBL_SUGGEST_MESSAGE_ERROR;
var P_UCSUGGESTIONS_LBL_SUGGEST_MESSAGE_NORESULT;



function OpenSuggest() {
    displaystatuswait(0);
    _doloadsuggestion();
    //380 500
    //    U_ShowOverlay(500, 450, 'UDivSuggestion')
    U_ShowOverlay(495, 465, 'UDivSuggestion')
}
function _doloadsuggestion() {
    try {
        _ClearResultSuggestion();
        doAjaX(P_UCSUGGESTIONS_PATH_WEBSERVER + 'WYAJaxPage/Ajax_Main.aspx', 'MODE=UGetSuggestion&RND=' + new Date(), "Callback_Suggestion")
    } catch (e) {
        alert(e.message)
    }
}
function Callback_Suggestion(mreturn) {
    var mtype = 1;
    if (mreturn == "KO") {
        mreturn = P_UCSUGGESTIONS_LBL_SUGGEST_MESSAGE_ERROR;
        mtype = 0;
    }
    else if (mreturn == "NORESULT") {
    mreturn = P_UCSUGGESTIONS_LBL_SUGGEST_MESSAGE_NORESULT;
        mtype = 0;
    }

    var oRow1 = document.getElementById("UShowSuggestion").insertRow(document.getElementById("UShowSuggestion").rows.length)
    var oCol0 = oRow1.insertCell(oRow1.cells.length)
    oCol0.innerHTML = mreturn;
    displaystatuswait(mtype)
}

function displaystatuswait(mtype) {
    if (mtype == "1") {
        document.getElementById("tblbutonclose").style.display = "block";
        document.getElementById("tblloadingsuggestion").style.display = "none";
    }
    else {
        document.getElementById("tblbutonclose").style.display = "none";
        document.getElementById("tblloadingsuggestion").style.display = "block";
    }
}

function _ClearResultSuggestion() {
    while (document.getElementById("UShowSuggestion").rows.length > 2) {
        document.getElementById("UShowSuggestion").deleteRow(2)
    }
}

function CloseLaverSuggestion() {
    UClose_Overlay()
}

function ClearValueOfCityPoint() {
    document.getElementById("txtcity").value = "";
    document.getElementById("hidcity").value = "";
    document.getElementById("txtcityplan").value = "";
    document.getElementById("hidcityplan").value = "";
    document.getElementById("radioStartPoint2").checked = true;
    _radiostartpoint();
    document.getElementById("radioEndPoint2").checked = true;
    _doradendpoint();

    document.getElementById("CboStartDate").value = 1;
    document.getElementById("CboEndDate").value = 1;
    _doenterdate();
}

function UsethisSuggestion(mregionid, mcircular, minday, maxday, StartPoint, EndPoint, StartPintID, EndPointID, mregionstart, mregionend) {
    ClearValueOfCityPoint();
    ClearArrayPublicmap();

    // hardcoded value 332 (france, andorra, spain, california, florida) : todo : select max(region_Id) from region where active = 1
    for (var i = 0; i <= 332; i++) {
        if (document.getElementById(i) != null) {
            DelTextRegionOnHomePage(i);
        }
    }

    ClearRowRegionOnHomePage();

    countrySelected = 0; // a suggestion is always given for 1 country

/*
    //combo region of homepage
    var RegionIdTemp = document.getElementById("UIdSuggestion_RegionId").value;
    if (RegionIdTemp != "") {  //del old region for show one only.
        RegionIdTemp = RegionIdTemp.split(",");
        for (i = 0; i <= RegionIdTemp.length - 1; i++) {
            DelTextRegionOnHomePage(RegionIdTemp[i])
        }
    }
  */  
    document.getElementById("UIdSuggestion_RegionId").value = mregionid;

    var arrayregionid = "";
    arrayregionid = mregionid.split(",");
    if (arrayregionid.length > 0) {
        for (i = 0; i <= arrayregionid.length - 1; i++) {
            document.getElementById("CboRegion").value = arrayregionid[i];
            AddTextRegionToHomePage();
        }
    }
    
    //type of tour
    if (mcircular == "True") {
        document.getElementById("radioKindTour1").checked = true;
        _radiotourtype()
    }
    else {
        document.getElementById("radioKindTour2").checked = true;
        _radiotourtype()
    }

    //startpoint
    if (StartPoint != "") {
        document.getElementById("radioStartPoint1").checked = true;
        _radiostartpoint();
    }
    //endpoint radioEndPoint
    if (EndPoint != "") {
        document.getElementById("radioEndPoint1").checked = true;
        _doradendpoint();
    }

    document.getElementById("txtcity").value = StartPoint;
    document.getElementById("txtcityplan").value = EndPoint;
    if (StartPintID != "0") {
        document.getElementById("hidcity").value = StartPintID + ',' + mregionstart;
    }

    if (EndPointID != "0") {
        document.getElementById("hidcityplan").value = EndPointID + ',' + mregionend;
    }

    //day with in 
    if (minday != "0" && maxday != "0") {
        document.getElementById("CboStartDate").value = minday;
        document.getElementById("CboEndDate").value = maxday;
        _doentertour();
    }

    OnChangeStartDate();
    CloseLaverSuggestion()
}// Created on 2008-12-24 by Somchai
// Asked by Bachir by email on 2008-12-18
// This index.js is called by index.aspx

//----Declaration public variable---
var P_INDEX_CURRENTSESSION_CURRENTLANG;
var P_INDEX_PATH_WEBSERVER_MAIN;
var P_INDEX_LBL_CHOOSE_REGION;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_REGION;
var P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_REGION;
var P_INDEX_ROOM;
var P_INDEX_LBL_PERSION;
var P_INDEX_No_Profile
var P_INDEX_LBL_ALERT_MESSAGE_USERNMAE;
var P_INDEX_LBL_ALERT_MESSAGE_PASSWORD;
var P_INDEX_LBL_ALERT_PASSWORD_INCORRECT;
var P_INDEX_DEL;
var P_INDEX_LBL_ALERT_MESSAGE_SELECTREGION;
var P_INDEX_LBL_ALERT_MESSAGE_STARTINGPOINT;
var P_INDEX_LBL_ALERT_MESSAGE_FILLCITY;
var P_INDEX_AIRPORT_ERROR;
var P_INDEX_LBL_ALERT_MESSAGE_STARTFROM;
var P_INDEX_LBL_ALERT_MESSAGE_STARTDATE;
var P_INDEX_LBL_ALERT_MESSAGE_ENDDATE;
var P_INDEX_LBL_ALERT_MESSAGE_DATESMALL;
var P_INDEX_LBL_ALERT_MESSAGE_KINDOFTOUR;
var P_INDEX_LBL_ALERT_MESSAGE_ENDINGPOINT
var P_INDEX_AIRPORT_ERROR2;
var P_INDEX_LBL_ALERT_MESSAGE_FINISHAT;
var P_INDEX_LBL_ALERT_MESSAGE_COUNTRY;
var P_INDEX_LBL_ALERT_MESSAGE_STARTDATE_CHECKIN;
var P_INDEX_LBL_ALERT_MESSAGE_ENDDATE_CHECKOUT;
var P_INDEX_LBL_ALERT_WAIT_BUILDTOUR;
var P_INDEX_LBL_ALERT_WAIT_BUILDTOUR1;
var P_INDEX_LBL_ALERT_MESSAGE_LEGAL_NOTICE
var P_INDEX_CURRENTUSERID;
var P_INDEX_CURRENTUSERTYPE;
var P_INDEX_CONST_ISO_ANONYMOUS;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_REGIONS;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTPOINT;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTPOINTID;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTAT;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTDATE;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDDATE;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_TYPE;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDAT;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDPOINT;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDPOINTID;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_COUNTRY;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_CITY;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_CHECKIN;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_CHECKOUT;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_NUMBERPEOPLE;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_NUMBERROOM;
var P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_CITY;
var P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_TYPE;
var P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_KEYWORD;
var P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_KEEPTYPEOFPLANORFIND;
var P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_LISTNUMPEPPLE;
var P_INDEX_TIMEOUT;
var P_INDEX_LOCATION_HREF;
var P_INDEX_NOW_YEAR;
var P_INDEX_NOW_MONTH;
var P_INDEX_NOW_DAY;
var P_INDEX_NOW_YEAR_1;
var P_INDEX_NOW_ADDDAYS_1;
var P_INDEX_DEL;
var P_INDEX_PATH_IMAGE;
var P_INDEX_CURRENTSESSION_ACCEPTCONDITION;
var P_INDEX_LBL_ALERT_MESSAGE_PDF;
//for homepage map regions
var myPublicMap = new Array();
var myPublicMapfindHotel = new Array();
var myPublicMapfindActivity = new Array();
var myPublicCurrentMapName = "plan_your_tour";
var DATA_DATENOWADD360;
//reset value
ClearArrayPublicmap()
//prevent click map double
var PublicStatus = false

// variables and functions used to support multiple countries (for now only one country can be selected for a trip) -------

var countrySelected = 0;
var selectedCountryName = null;
var fullRegionList = new Array();
var countryupdates = 0;

function storeFullRegionsList() {
    for (var index = 1; index < G("CboRegion").options.length; ++index) {
        var option = G("CboRegion").options[index];
        fullRegionList[index - 1] = { text: option.text, value: option.value };
    }
}

function rebuildRegionsList() {
    countrySelected--;
    if (countrySelected == 0) {
        G("CbochooseCountry").value = "0";
        selectedCountryName = null;
        for (var index = 0; index < fullRegionList.length; ++index)
            G("CboRegion").options[index + 1] = new Option(fullRegionList[index].text, fullRegionList[index].value);
    }
}

function rebuildssRegionsList() {
    selectedCountryName = null;
    for (var index = 0; index < fullRegionList.length; ++index)
        G("CboRegion").options[index + 1] = new Option(fullRegionList[index].text, fullRegionList[index].value);
}


function updateRegionsList() {
    if (selectedCountryName != null) {
        G("CboRegion").options.length = 0;
        G("CboRegion").options[0] = new Option(P_INDEX_LBL_CHOOSE_REGION, 0);
        var i = 0;
        for (var index = 0; index < fullRegionList.length; ++index) {
            if (fullRegionList[index].text.substring(0, fullRegionList[index].text.indexOf(" -- ")) == selectedCountryName) {
                G("CboRegion").options[i + 1] = new Option(fullRegionList[index].text, fullRegionList[index].value);
                i++;
            }
        }
    }
    /*
    var opts = G("CboRegion").options;
    var optionCount = opts.length;
    for (var index = 1; index < optionCount; ++index) {
    var item = opts[index];
    if (item == undefined)
    break;
    if (selectedCountryName != null && item.text.substring(0, item.text.indexOf(" -- ")) != selectedCountryName) {
    G("CboRegion").remove(index);
    index--;
    }
    }
    */
    selectCountry();
}

function selectCountry() {
    for (var index = 1; index < G("CboCountry").options.length; ++index) {
        if (G("CboCountry").options[index].text == selectedCountryName) {
            G("CboCountry").value = G("CboCountry").options[index].value;
            break;
        }
    }
}

// -----------------------------------------------------------------------------------------------------------------------

function setpositiononload() {

}
//-----------------Change Tab----------
//index = 1 = plantour, 2 = findhotel, 3 = find activiity
function ChangeTab(index) {

    G("c1_1").style.display = (index == 1) ? "block" : "none"
//    G("c1_2").style.display = (index == 1) ? "block" : "none"
    G("c2_1").style.display = (index != 1) ? "block" : "none"
    G("tab1").style.display = (index == 1) ? "block" : "none"
    G("tab2").style.display = (index == 2) ? "block" : "none"
    G("tab3").style.display = (index == 3) ? "block" : "none"

    G("tabhead1").className = "tab" + ((index == 1) ? " active" : "")
    G("tabhead2").className = "tab" + ((index == 2) ? " active" : "")
    G("tabhead3").className = "tab" + ((index == 3) ? " active" : "")

    G("divregionselected").style.display = (index == 1) ? "block" : "none"
    G("divHotelregionselected").style.display = (index == 2) ? "block" : "none"
    G("divActivityregionselected").style.display = (index == 3) ? "block" : "none"
    /*
    if (index==2)
    G("c2_1").style.paddingTop = "17px"
    if (index==3)
    G("c2_1").style.paddingTop = "35px"
    */
    if (index == 1) {
        myPublicCurrentMapName = "plan_your_tour"; // for check open map  
    }
    else if (index == 2) {
        myPublicCurrentMapName = "find_hotel"; // for check open map
    }
    else if (index == 3) {
        myPublicCurrentMapName = "find_activity"; // for check open map
    }

    //--- keep value index for get on load tab type of plan or findhotel or findactivity.---
    G("U_Index_hidTypePlanHotelActivity").value = index;
    //---------

    ClearRowRegionOnHomePage();
    SetRegionWriteHomePage();
    HideAllLayer();

}
//------Hide All Layer on opening --------
function HideAllLayer() {
    UClose_Overlay()
}
//-------------------------------------
function submitfromcookie() {
    G("Frmmain").submit();
}
//-----for Plan your tour---------
function PositionOpenMap(e, val, sid) {
    var mapdivs = document.getElementsByClassName('mapdiv');
    if (val == "") {

        if (G("CboCountry").value != 0) {
            val = G("CboCountry").value;
        }
        else if ((G("CbochooseCountry").value != 0) && (CountRegionSelected(2).length != 0)) {
            val = G("CbochooseCountry").value;
        }
        else {
            val = "0";
        }
        G("CbochooseCountry").value = val;
        if (val == "0") {
            for (var i = 0; i < mapdivs.length; i++) {
                mapdivs[i].style.display = "none";        
            }
        }
        if (val != "0") {
            G("CbochooseCountry").disabled = true;
        }
    }

    rebuildssRegionsList();
    countryupdates = "0";
    var mPathImage = P_INDEX_PATH_IMAGE;

    for (var i = 0; i < mapdivs.length; i++) {
        if (mapdivs[i].id == ("IdImageMap_" + val.toUpperCase())) {
            mapdivs[i].style.display = "block";
            mapdivs[i].style.backgroundImage = 'url(' + mPathImage + val + '.jpg)';

            // this map will be automatically scrolled to bottom right if a condition depending on the client is met
            if (typeof mapScrollVal !== "undefined") {
                var parentDiv = mapdivs[i].parentNode;
                if (val.toUpperCase() == mapScrollVal) {
                    parentDiv.scrollTop = mapdivs[i].scrollHeight;
                    parentDiv.scrollLeft = mapdivs[i].scrollWidth;
                } else {
                    parentDiv.scrollTop = 0;
                    parentDiv.scrollLeft = 0;
                }
            }
            
        } else {
            mapdivs[i].style.display = "none";
        }
    }
    
    if (sid == 1) {
        _show_layer_maphome()
        ClearRowRegion();
    }

    SetValuStartMap(val);
    _nameactive_test(val);
}

//-----for find hotel------
function PositionOpenMapForHotel(e) {
    myPublicCurrentMapName = "find_hotel"; // for check open map
    G("divHotelregionselected").style.display = "block";
    //-------Check Calendar if open ginve close it----
    //C_C_ExitCalendar();
    //------------------------------------------------
    var mPathImage = P_INDEX_PATH_IMAGE;
    G("IdImageMap_FR").style.backgroundImage = 'url(' + mPathImage + 'fr.jpg)';
    _show_layer_maphome()
    ClearRowRegion();
    SetValuStartMap("fr"); // todo ...
}

//-----for find activity------
function PositionOpenMapForActivity(e) {
    myPublicCurrentMapName = "find_activity"; // for check open map
    G("divActivityregionselected").style.display = "block";
    //-------Check Calendar if open ginve close it----
    //C_C_ExitCalendar();
    //------------------------------------------------
    var mPathImage = P_INDEX_PATH_IMAGE;
    G("IdImageMap_FR").style.backgroundImage = 'url(' + mPathImage + 'fr.jpg)';
    _show_layer_maphome()
    ClearRowRegion();
    SetValuStartMap("fr"); // todo ...
}

//------------------------------------------------
//clear 1st page region map array
function ClearArrayPublicmap() {


    for (var i = 0; i < myPublicMap.length; i++) {
        myPublicMap[i] = "0";    
    }

    for (var i = 0; i < myPublicMapfindHotel.length; i++) {
        myPublicMapfindHotel[i] = "0";
    }

    for (var i = 0; i < myPublicMapfindHotel.length; i++) {
        myPublicMapfindHotel[i] = "0";
    }

/*
    var i = 0;
    for (i = 0; i <= 51; i++) { hardcoded value
        myPublicMap[i] = "0";
        myPublicMapfindHotel[i] = "0";
        myPublicMapfindActivity[i] = "0";
    }
*/
}

//------------about Counttry get region of Activity and hotel -------
function LoadComboRegion() {
    try {


        G("CboRegionHotel").length = 0;
        G("CboRegionHotel").options[0] = new Option('Loading...')

        G("CboRegionActivity").length = 0;
        G("CboRegionActivity").options[0] = new Option('Loading...')
        doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=GetRegionFromCountry&countryid=' +
                G("CboCountry").value + '&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG + '&RND=' + new Date(),
                "Callback_GetRegionNameOfActivityAndHotel")
    } catch (e) {
        ShowAlertMessageWait(escape(e.message), "", 75)
    }
}
function Callback_GetRegionNameOfActivityAndHotel(mreturn) {
    ClearComboRegionActivity();
    G("CboRegionHotel").options[G("CboRegionHotel").length] = new Option(P_INDEX_LBL_CHOOSE_REGION, 0);
    G("CboRegionActivity").options[G("CboRegionActivity").length] = new Option(P_INDEX_LBL_CHOOSE_REGION, 0);
    if (mreturn == '') return;
    eval(mreturn)
    if (mArray.length > 0) {
        var x = 0;
        while (x < mArray.length) {
            G("CboRegionHotel").options[G("CboRegionHotel").length] = new Option(UmakestringforCombo(mArray[x + 1]), mArray[x]);
            G("CboRegionActivity").options[G("CboRegionActivity").length] = new Option(UmakestringforCombo(mArray[x + 1]), mArray[x]);
            x = x + 2
        }

        if (P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_REGION != "") {
            G("CboRegionHotel").value = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_REGION;
        }

        if (P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_REGION != "") {
            G("CboRegionActivity").value = P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_REGION;
        }

        SetEnableDisableOfSuggestion(false);
    }
    else {
        SetEnableDisableOfSuggestion(true);
    }
}

//function for NumberOfroom ---------------
function WriteCbroom() {
    var CheckRoom = G("cboNoRoom").value
    if (parseFloat(CheckRoom) > 1) {
        G("tblRooms").style.display = "block"
        G("LabelPPLperRoom").innerHTML = ''
        for (CbNumber = 1; CbNumber <= CheckRoom; CbNumber++) {
            G("LabelPPLperRoom").innerHTML += '<font size=2>' + P_INDEX_ROOM + ' ' + CbNumber + ' </font> '
            G("LabelPPLperRoom").innerHTML += '<select id="cbRoom' + CbNumber + '" style="width: 50px"> <option value="1">1</option><option value="2" selected="selected">2</option><option value="3">3</option><option value="4">4</option></select>'
            G("LabelPPLperRoom").innerHTML += '<font size=2>&nbsp;' + P_INDEX_LBL_PERSION + ' </font>';
            G("LabelPPLperRoom").innerHTML += '<br>'
        }
    }
    else {
        G("tblRooms").style.display = "none"
    }
}
//------------------------------------------


//--------for set picklist and textbox city to enable and disable --------
//mtype : true = disable
function SetEnableDisableOfSuggestion(mtype) {
    var mcolor = "#FFFFFF";
    if (mtype == true) { mcolor = "#f0f0f0"; }
    G("CboRegionHotel").disabled = mtype;
    G("CboRegionActivity").disabled = mtype;

    G("txtcityhotel").disabled = mtype;
    G("txtcityactivity").disabled = mtype;

    G("txtcityhotel").style.backgroundColor = mcolor;
    G("txtcityactivity").style.backgroundColor = mcolor;

}
//------------------------------------------------
//clear items in combo regionhotel / regionactivity
function ClearComboRegionActivity() {
    G("CboRegionHotel").length = 0
    G("CboRegionActivity").length = 0
}
//-------------------------------------------------------------------
//key event of login box
function pressKey(e) {
    var TmpKey;
    if (window.event) { TmpKey = e.keyCode } 	//IE
    else { TmpKey = e.which }   //Firefox
    if (parseFloat(TmpKey) == 13) {
        loged()
    }
}

//login procedure
function loged() {
    if (G("musername").value == "") {
        ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_USERNMAE), "", 75)
        //ShowAlertMessageWait(escape(P_INDEX_No_Profile), "", 75)
        G("musername").focus();
        return;
    }
    if (G("mpassword").value == "") {
        ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_PASSWORD), "", 75)
        G("mpassword").focus();
        return;
    }

    try {
        ShowingWaitMessage1('Log in....')
        doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=Login' +
                '&username=' + G("musername").value + '&password=' + G("mpassword").value + '&RND=' + new Date(), "Callback_Login")
    } catch (e) {
        ShowAlertMessageWait(escape(e.message), "", 75)
    }
}
function Callback_Login(mreturn) {
    if (mreturn == '') {
        ShowAlertMessageWait('Unexpected Error', "", 75)
    } else {
        eval(mreturn)
        if (mArray.length > 0) {
            G("hiduserid").value = mArray[0];
            G("hidsub").value = "L"   //login
            _save_header_region()
            //--keep number of people for find hotel-----  
            G('ListNumPeople').value = doList()
            //----------------------------
            G("Frmmain").submit();

            //alert(mArray);
            G("hidAcceptCondition").value = mArray[2].toLowerCase();

            return;
        } else {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_PASSWORD_INCORRECT), "", 75)
        }
    }
}

//-----------------------About picklist Number of people  and Number of hotel-----------------------------------------------------------
function ClearComboRoomPeople() {
    G("cboNoRoom").length = 0
}
//event when no. room change
function OnChangeStartRoomPeople() {

    SetEndChangeRoomPeople(G("cboNoPeople").value)
}
//rewrite combo room person
//day = number of days
function SetEndChangeRoomPeople(day) {
    var i = 1;
    var mStartday = G("cboNoPeople").value;
    var mEndday = G("cboNoRoom").value;

    ClearComboRoomPeople();
    for (i = 1; i <= day; i++) {
        G("cboNoRoom").options[G("cboNoRoom").length] = new Option(i, i);
    }


    if (parseFloat(mStartday) >= parseFloat(mEndday)) {
        G("cboNoRoom").value = mEndday;
    }
    else {
        // rewrite combo bloc room person.
        WriteCbroom();
    }
}
//-------------------End-------------------------------------------------------------------------

//--------------------About Number of days between day-----------------------------------------
function LoadComboDate() {
    var i = 0;
    for (i = 1; i <= 30; i++) {
        G("CboStartDate").options[G("CboStartDate").length] = new Option(i, i);
        G("CboEndDate").options[G("CboEndDate").length] = new Option(i, i);
    }
}
//clear 1st page combostartdate
function ClearComboStartDate() {
    while (G("CboStartDate").length > 0) {
        G("CboStartDate").remove(0)
    }
}
//clear 1st page comboenddate
function ClearComboEndDate() {
    while (G("CboEndDate").length > 0) {
        G("CboEndDate").remove(0)
    }
}
function OnChangeStartDate() {
    SetEndChangeDate(G("CboStartDate").value)
    G("StartDateTourWithDay").value = '';
    G("EndDateTourWithDay").value = '';
}
function OnChangeEndDate() {
    SetStartChangeDate(G("CboEndDate").value)
}
//validate comboenddate if combostardate / enddate changed
//day : number of enddate start to filled
function SetEndChangeDate(day) {
    var i = 1;
    var mStartday = G("CboStartDate").value;
    var mEndday = G("CboEndDate").value;
    ClearComboEndDate();
    for (i = day; i <= 30; i++) {
        G("CboEndDate").options[G("CboEndDate").length] = new Option(i, i);
    }
    if (parseFloat(mStartday) <= parseFloat(mEndday)) {
        G("CboEndDate").value = mEndday;
    }


}
//validate combostartdate if combostardate / enddate changed
//day : number of startdate end to filled
function SetStartChangeDate(day) {
    var i = 1;
    var mday = G("CboStartDate").value;
    ClearComboStartDate();
    for (i = 1; i <= day; i++) {
        G("CboStartDate").options[G("CboStartDate").length] = new Option(i, i);
    }
    G("CboStartDate").value = mday;

}

//------------------------------------------------
//show map layer
function _show_layer_maphome() {
    //U_ShowOverlay(430, 495, 'helpvhs')
    U_ShowOverlay(510, 500, 'helpvhs')
}
//close mapy layer
function close_map() {
    ClearRowRegionOnHomePage();
    SetRegionWriteHomePage();
    HideAllLayer()
    hiddenAllClose();
    _validateradio()
    _rebuildscombos();

    if (countrySelected == -1) {
        countrySelected = 0;
    }
}
function _rebuildscombos() {
    if (CountRegionSelected(2).length == 0 && countryNumber > 1) {
        selectedCountryName = "1";
        rebuildRegionsList();
        var mapdivs = document.getElementsByClassName('mapdiv');
        for (var i = 0; i < mapdivs.length; i++) {
            mapdivs[i].style.display = "none";        
        }
        G("CbochooseCountry").value = "0";
        G("CboCountry").value = "0";
    }
}

//------------------------------------------------
//set region value on map layer
function SetRegionWriteHomePage() {
    try {
        if (myPublicCurrentMapName == "plan_your_tour") {
            if (CountRegionSelected(1)) {
                WriteTextRegionHomepage(myPublicMap)
                SetShowHiddenWriteRegionOnHomePage('block')
            }
            else {
                SetShowHiddenWriteRegionOnHomePage('none')
            }
        }
        else if (myPublicCurrentMapName == "find_hotel") {
            SetShowHiddenWriteRegionOnHomePage('none')
        }
        else if (myPublicCurrentMapName == "find_activity") {
            SetShowHiddenWriteRegionOnHomePage('none')
        }
    } catch (e) {
        ShowAlertMessageWait(escape(e.message), "", 75)
    }
}
//check region exist on map ?
//mtext = regionid
function CheckPublicMapExist(mtext) {
    var i = 0;

    for (i = 0; i <= myPublicMap.length; i++) {
        if (mtext == myPublicMap[i]) {
            return false;
        }
    }

    return true;

}

//adding region's caption on 1stpage
function AddTextRegionToHomePage() {
    var regionid = G("CboRegion").value
    var regiontext = G("CboRegion").options[G("CboRegion").selectedIndex].text

    if (regionid == 0) {
        //------set default status cboregion is default = 0 ---------
        G("CboRegion").selectedIndex = 0;
        //console.log("regionid = 0");
        return
    }

    var Status = CheckPublicMapExist(regionid)
    if (!Status) {
        G("CboRegion").selectedIndex = 0;
        //console.log("!status");
        return
    }

    selectedCountryName = regiontext.substring(0, regiontext.indexOf(" -- "));
    //console.log("selected countryname : " + selectedCountryName);
    countrySelected++;
    updateRegionsList();

    SetShowHiddenWriteRegionOnHomePage("block");
    SetArrayPositionValueMap(regionid)
    oRow1 = G("tblregionselected").insertRow(G("tblregionselected").rows.length)
    oRow1.id = regionid;

    var oCol0 = oRow1.insertCell(oRow1.cells.length)
    oCol0.noWrap = true
    oCol0.innerHTML = "<a href=javascript:DelTextRegionOnHomePage('" + regionid + "') size=1>" + P_INDEX_DEL + "</a>";

    var oCol0 = oRow1.insertCell(oRow1.cells.length)
    oCol0.noWrap = true
    oCol0.innerHTML = "";

    var oCol0 = oRow1.insertCell(oRow1.cells.length)
    oCol0.noWrap = true
    oCol0.innerHTML = "<font size=2>" + regiontext + "</font>";

    _validateradio()
    G("CboRegion").selectedIndex = 0;
}

//*obselete
function GetValueOfPostionMap(IndexKey) {
}
//when return from the map select.
//mArrayPublicMap : array to keep selected map
//mforlayer : tablename to put the maplayer
function WriteTextRegionHomepage(mArrayPublicMap, mforlayer) {
    var _thetablename = ''
    switch (myPublicCurrentMapName) {
        case "find_hotel":
            _thetablename = "tblHotelregionselected"; break;
        case "find_activity":
            _thetablename = "tblActivityregionselected"; break;
        default:
            _thetablename = "tblregionselected"; break;
    }
    if (mforlayer != null) {
        _thetablename = mforlayer
        if (mforlayer != '') _thetablename = mforlayer
    }
    for (var i = 0; i < mArrayPublicMap.length; i++) {
        if (UVal(mArrayPublicMap[i]) != 0) {
            var oRow1 = G(_thetablename).insertRow(G(_thetablename).rows.length)
            oRow1.id = mArrayPublicMap[i];
            if (((mArrayPublicMap[i]) != 0) && (countryupdates == 0)) {
                G("CboRegion").value = mArrayPublicMap[i];
                G("CboRegion").options[G("CboRegion").selectedIndex].value = mArrayPublicMap[i];
                var regiontext = G("CboRegion").options[G("CboRegion").selectedIndex].text
                selectedCountryName = regiontext.substring(0, regiontext.indexOf(" -- "));
                updateRegionsList();
                countryupdates++;
            }

            var oCol0 = oRow1.insertCell(oRow1.cells.length)
            oCol0.noWrap = true
            oCol0.innerHTML = "<a href=javascript:DelTextRegionOnHomePage('" + mArrayPublicMap[i] + "') size=1>" + P_INDEX_DEL + "</a>";

            var oCol0 = oRow1.insertCell(oRow1.cells.length)
            oCol0.noWrap = true
            oCol0.innerHTML = "";

            var oCol0 = oRow1.insertCell(oRow1.cells.length)
            oCol0.noWrap = true
            // oCol0.innerHTML = "<font size=2>" + _getnameofregion("fr", mArrayPublicMap[i]) + "</font>";
            oCol0.innerHTML = "<font size=2>" + _getnameofregion(null, mArrayPublicMap[i]) + "</font>";
        }
    }
}

//-------------------About Count Array--------------------------------------
//first map
function CountRegionSelected(typereturn, returnnameyn) {
    return _CountRegionSelected(myPublicMap, typereturn, returnnameyn)
}
//parameter_1 : int
//            : 1 is true with false
//            : 2 is data string regionid
//parameter_2 : if true : return name instead
function _CountRegionSelected(marray, typereturn, returnnameyn) {
    var i = 0;
    var regionid = "";
    var comma = "";
    var mStatus = false;
    var mSplit
    var _returnnameyn = returnnameyn
    if (_returnnameyn == null) _returnnameyn = false

    if (marray.length - 1 > 0) {
        for (i = 0; i <= marray.length - 1; i++) {
            if (UVal(marray[i]) != '0') {
                if (typereturn == 1) { mStatus = true; break; }
                else if (typereturn == 2) {
                    regionid = regionid + comma + marray[i];
                    comma = ",";
                }
            }
        }
    }

    if (typereturn == 1) { return mStatus; }
    else if (typereturn == 2) { return regionid; }
}
//------------------------------------------------
function CountRegionSelectedHotel(typereturn) {
    return _CountRegionSelected(myPublicMapfindHotel, typereturn, returnnameyn)
}
//------------------------------------------------
function CountRegionSelectedActivity(typereturn) {
    return _CountRegionSelected(myPublicMapfindActivity, typereturn, returnnameyn)
}
//---------------------------------------------------------------------------------------------
//show layer region on homepage
//status : plan_your_tour, find_hotel, find_activity
function SetShowHiddenWriteRegionOnHomePage(Status) {
//    if (myPublicCurrentMapName == "plan_your_tour") {
//        G("divregionselected").style.display = Status;
//        G("divheadwriteregion").style.display = Status;
//    }
//    else if (myPublicCurrentMapName == "find_hotel") {
//        G("divHotelregionselected").style.display = Status;
//        G("divheadwriteregion").style.display = Status;
//    }
//    else if (myPublicCurrentMapName == "find_activity") {
//        G("divActivityregionselected").style.display = Status;
//        G("divheadwriteregion").style.display = Status;
//    }
}
//------------------------------------------------
//clear combo country on plan tour
function ClearComboCountry() {
    G("CboCountry").length = 0
}
//------------------------------------------------
function Callback_ComboCountry(mreturn) {
    eval(mreturn)
    if (mArray.length > 0) {
        var x = 0;
        while (x < mArray.length) {
            G("CboCountry").options[G("CboCountry").length] =
		                                                new Option(UmakestringforCombo(mArray[x + 1]), mArray[x]);
            x = x + 2;
        }
    }
}

//this function keep index and position of X and Y on the map
//indexkey : regionid
//memptyyn : if empty clear map
function SetArrayPositionValueMap(IndexKey, memptyyn) {
    var _valuefill = IndexKey
    if (memptyyn) _valuefill = '0'
    if (myPublicCurrentMapName == "plan_your_tour") {
        _clearthearraymap(myPublicMap, IndexKey, _valuefill)
    }
    else if (myPublicCurrentMapName == "find_hotel") {
        _clearthearraymap(myPublicMapfindHotel, _valuefill);

    }
    else if (myPublicCurrentMapName == "find_activity") {
        _clearthearraymap(myPublicMapfindActivity, IndexKey, _valuefill);
    }
}
//validate button ok on map
//mtype : true = disable
function SetStatusEnableButtonOKMap(mtype) {
    if (mtype == true) { G("idclose").innerHTML = "" }
    else { G("idclose").innerHTML = "X"; }
    G("buttonOK").disabled = mtype;
}
//------------------------------------------------
//hide image region ??
function hiddenAllClose() {
    //        G("img_1").style.visibility = "hidden" 
    //        G("img_2").style.visibility = "hidden"  
    //        G("img_3").style.visibility = "hidden"  
    //        G("img_4").style.visibility = "hidden"  
    //        G("img_5").style.visibility = "hidden"  
    //        G("img_6").style.visibility = "hidden"  
    //        G("img_7").style.visibility = "hidden" 
    //        G("img_8").style.visibility = "hidden" 
    //        G("img_9").style.visibility = "hidden" 
    //        G("img_10").style.visibility = "hidden" 
    //        G("img_11").style.visibility = "hidden" 
    //        G("img_12").style.visibility = "hidden" 
    //        G("img_13").style.visibility = "hidden" 
    //        G("img_14").style.visibility = "hidden" 
    //        G("img_15").style.visibility = "hidden" 
    //        G("img_16").style.visibility = "hidden" 
    //        G("img_17").style.visibility = "hidden" 
    //        G("img_18").style.visibility = "hidden" 
    //        G("img_19").style.visibility = "hidden" 
    //        G("img_20").style.visibility = "hidden" 
    //        G("img_21").style.visibility = "hidden" 

}
//------------------------------------------------
//remove region from map array /show on homepage
//indexkey = map line row regionid
//mtype : plan_your_tour,find_hotel,find_activity
function _delregiontable(indexkey, mtype) {

    var mtable
    switch (mtype) {
        case "plan_your_tour":
            mtable = G("tblregionselected")
            break;
        case "find_hotel":
            mtable = G("tblHotelregionselected")
            break;
        case "find_activity":
            mtable = G("tblActivityregionselected")
            break;
    }

    for (var index = 1; index < mtable.rows.length; index++) {
        if (indexkey == mtable.rows.item(index).id) {
            if (mtype == "plan_your_tour") {
                // Clear value of Array for Show new Again.
                _setthearraymapvalue(myPublicMap, indexkey, '0')
            }
            else if (mtype == "find_hotel") {
                _setthearraymapvalue(myPublicMapfindHotel, indexkey, "0"); // Clear value of Array for Show new Again.
            }
            else if (mtype == "find_activity") {
                _setthearraymapvalue(myPublicMapfindActivity, indexkey, "0");  // Clear value of Array for Show new Again.
            }
            mtable.deleteRow(index);
        }
    }
    if (mtable.rows.length == 1 && countryNumber > 1) {
        G("CboCountry").value = "0";

        var mapdivs = document.getElementsByClassName('mapdiv');
        for (var i = 0; i < mapdivs.length; i++) {
            mapdivs[i].style.display = "none";        
        }
        G("CbochooseCountry").disabled = false;
    }

    //-----sno create on 2008/12/30 -------
    //keep list region all for check delete regions.
    var mlistregios = "";
    var coma = "";
    for (var index = 1; index < mtable.rows.length; index++) {
        mlistregios = mlistregios + coma + mtable.rows.item(index).id
        coma = ","
    }

    if (CheckTextCityHiddenForOtherRegion(mlistregios, "hidcity") == false) {
        G("radioStartPoint2").checked = true;
        _disablecity('txtcity', (CountRegionSelected(2) == '') || G("radioStartPoint2").checked, 'hidcity')
    }

    if (CheckTextCityHiddenForOtherRegion(mlistregios, "hidcityplan") == false) {
        G("radioEndPoint2").checked = true;
        _disablecity('txtcityplan', (CountRegionSelected(2) == '') || G("radioEndPoint2").checked, 'hidcityplan')
    }
    //----------------------------------------------
}
//put value in  array of map
//marry : which array
//mvalue : index to put
//mnewvalue : new value
function _clearthearraymap(marray, mvalue, mnewvalue) {
    marray[mvalue] = mnewvalue
}
//put value in  array of map
function _setthearraymapvalue(marray, mvalue, mnewvalue) {
    _clearthearraymap(marray, mvalue, mnewvalue)
}
//remove text of region's caption from homepage
//indexkey : regionid
function DelTextRegionOnHomePage(indexkey) {
    _delregiontable(indexkey, myPublicCurrentMapName)
    ClearRowRegionOnHomePage();
    SetRegionWriteHomePage();
    rebuildRegionsList();
}
//sno create on 2008/12/30
// for check on delete region and keep text city?
//mlistregios : region list x,y,z...
//mcityhidden : mcityhidden control
function CheckTextCityHiddenForOtherRegion(mlistregios, mcityhidden) {
    var i;
    mlistregios = mlistregios.split(",")
    var mcityid = G(mcityhidden).value
    mcityid = mcityid.split(",")

    //----start index 0
    if (mlistregios.length > 0) {
        for (i = 0; i <= mcityid.length - 1; i++) {
            if (mcityid.length > 1) {
                //----start index 1 --> "78070,1,9,8..."
                for (j = 1; j <= mcityid.length - 1; j++) {
                    if (parseFloat(mcityid[j]) == parseFloat(mlistregios[i])) {
                        return true;
                    }
                }
            }
            return false;
        }
    }
    else {
        return false;
    }
}
//---------------------------------------------------------------------------------
function ClearRowRegion() {

}
//clear row region on homepage
function ClearRowRegionOnHomePage() {
    while (G("tblregionselected").rows.length > 1) {
        G("tblregionselected").deleteRow(1);
    }
    while (G("tblHotelregionselected").rows.length > 1) {
        G("tblHotelregionselected").deleteRow(1);
    }
    while (G("tblActivityregionselected").rows.length > 1) {
        G("tblActivityregionselected").deleteRow(1);
    }

}
//-------------------------------------------------------------------------------
//check date is different from 30days
//if >=30 return false
//startdate : dd/mm/yyyy
//enddate : dd/mm/yyyy
function CheckDateDiff30(StartDate, Enddate) {

    var StartDate = new Date(FormatDateMMDDYYYY(StartDate))
    var Enddate = new Date(FormatDateMMDDYYYY(Enddate))
    var daysApart = Math.abs(Math.round((StartDate - Enddate) / 86400000));
    if (daysApart >= 30) {
        return false;
    }
    return true;
}
//check date between limit
//cboday1 : start number of days
//cboday2 : end number of days
//startdate : dd/mm/yyyy
//enddate : dd/mm/yyyy
//function CheckDateDiffWithLimit(CboDay1, CboDay2, StartDate, Enddate) {
//    var Limit = "";
//    Limit = parseFloat(CboDay2) - 1; //parseFloat(CboDay2) - parseFloat(CboDay1)      

//    var StartDate = new Date(FormatDateMMDDYYYY(StartDate))
//    var Enddate = new Date(FormatDateMMDDYYYY(Enddate))
//    var daysApart = Math.abs(Math.round((StartDate - Enddate) / 86400000));
//    if (daysApart < Limit) {
//        return false;
//    }
//    return true;
//}
//------------------------------------------------
//obselete
function _isMAPOpen() {
    //for check the map open....
    return false
}
//check mandatory when click 'build button'
function CheckMandatoryBuild() {
    //test legal notice acceptance
    //alert('-'+G("legal_notice_checkbox").checked+'-');
    if (!G("legal_notice_checkbox").checked) {
        ShowAlertMessageWait(P_INDEX_LBL_ALERT_MESSAGE_LEGAL_NOTICE);
        return false;
    }

    //if region is selected   
    if (G("CboRegion").disabled == false) {
        if (G("tblregionselected").rows.length < 2) {
            if (G("CboRegion").value == "0") {
                G("CboRegion").focus();
                ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_SELECTREGION), "", 75)
                return false;
            }

        }
    }

    //check any start point selected
    if (G("radioStartPoint1").checked == false && G("radioStartPoint2").checked == false) {
        G("radioStartPoint1").focus();
        ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_STARTINGPOINT), "", 75)
        return false;
    }
    //if start from city ,must be define city/airport text
    if (G("radioStartPoint1").checked == true) {
        if (G("txtcity").value == "") {
            G("txtcity").focus();
            ShowAlertMessageWait(escape(P_INDEX_AIRPORT_ERROR), "", 75)
            return false;
        }
        if (G("hidcity").value == "") {
            G("txtcity").focus();
            ShowAlertMessageWait(escape(P_INDEX_AIRPORT_ERROR), "", 75)
            return false;
        }
    }

    //if start from nopreference,must define start from city/airport
    if (G("radioStartPoint2").checked == true) {
        if (G("radioStartFrom1").checked == false && G("radioStartFrom2").checked == false) {
            G("radioStartFrom1").focus();
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_STARTFROM), "", 75)
            return false;
        }
    }

    //if use exactly date   
    if (G("startdate").style.display != "none") {
        if (G("StartDateTour").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_STARTDATE), "", 75)
            return false;
        }
        if (G("EndDateTour").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_ENDDATE), "", 75)
            return false;
        }

    }
    else   //if use range date               
    {
        if (G("StartDateTourWithDay").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_STARTDATE), "", 75)
            return false;
        }
        if (G("EndDateTourWithDay").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_ENDDATE), "", 75)
            return false;
        }
        //check start,end limit with range combo
        //        if (CheckDateDiffWithLimit(G("CboStartDate").value, G("CboEndDate").value,
        //                                     G("StartDateTourWithDay").value, G("EndDateTourWithDay").value) == false) {
        //            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_DATESMALL), "", 75)
        //            return false;
        //        }
    }

    // must select kind of tour
    if (G("radioKindTour1").checked == false && G("radioKindTour2").checked == false) {
        G("radioKindTour1").focus();
        ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_KINDOFTOUR), "", 75)
        return false;
    }
    //if linear selected must select where to end?
    if (G("radioKindTour2").checked == true) {
        if (G("radioEndPoint1").checked == false && G("radioEndPoint2").checked == false) {
            G("radioEndPoint1").focus();
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_ENDINGPOINT), "", 75)
            return false;
        }

        //check cityplan of endofpoint
        if (G("radioEndPoint1").checked == true) {
            if (G("txtcityplan").value == "") {
                ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_FILLCITY), "", 75)
                G("txtcityplan").focus();
                return false;
            }
            if (G("hidcityplan").value == "") {
                ShowAlertMessageWait(escape(P_INDEX_AIRPORT_ERROR2), "", 75)
                G("txtcityplan").focus();
                return false;
            }
        }


        if (G("radioEndPoint2").checked == true) {
            if (G("radioFinis1").checked == false && G("radioFinis2").checked == false) {
                G("radioFinis1").focus();
                ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_FINISHAT), "", 75)
                return false;
            }
        }
    }
    return true;
}

//------------------------------------------------
//check mandatory when click find hotel button
function CheckMandatoryHotel() {

    //must define country    
    if (G("CboCountry").value == "0" || G("CboCountry").value == "") {
        ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_COUNTRY), "", 75)
        G("CboCountry").focus();
        return false;
    }
    if (G("CboRegionHotel").value == "0" || G("CboRegionHotel").value == "") {
        if (G("txtcityhotel").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_SELECTREGION), "", 75)
            G("CboCountry").focus();
            return false;
        }
    }


    if (G("StartDateHotel").value != "" || G("EndDateHotel").value != "") {
        if (G("StartDateHotel").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_STARTDATE_CHECKIN), "", 75)
            return false;
        }
        else if (G("EndDateHotel").value == "") {
            ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_ENDDATE_CHECKOUT), "", 75)
            return false;
        }

    }
    return true;
}
//------------------------------------------------
//check mandatory when click 'find activity button'
function CheckMandatoryActivity() {
    //must define country  
    if (G("CboCountry").value == "0" || G("CboCountry").value == "") {
        ShowAlertMessageWait(escape(P_INDEX_LBL_ALERT_MESSAGE_COUNTRY), "", 75)
        G("CboCountry").focus();
        return false;
    }

    return true;
}
//showing layer waiting...
function ShowingWaitMessage1(mvtext, mvtext2, mvtext3) {
    U_CallShowWaiting(mvtext, mvtext2, mvtext3)
}
//------------------------------------------------
//build process
function _dofindlinear() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var divElement = document.createElement("ol")
            divElement.innerHTML = xmlhttp.responseText;
            var dotxtcityplanval = G("txtcityplan").value;
            dotextMatchlinear(dotxtcityplanval, divElement)
            submitBuild();
        }
    }
}

function _dofind() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var divElement = document.createElement("ol")
            divElement.innerHTML = xmlhttp.responseText;
            var dotxtcityval = G("txtcity").value;
            dotextMatch(dotxtcityval, divElement)
            if ((G("txtcityplan").value != "") && (G("hidcityplan").value == "")) {
                var txtcityplanval = G("txtcityplan").value;
                var txtcityplancheck = 'WYAJaxPage/ajax_Main.aspx?FUNC=newcitylist&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG + '&hidcontrolvalue=hidcityplan&txtcontrolvalue=' + txtcityplanval + '&regionid=' + CountRegionSelected(2) + '&RND=' + new Date()
                doAjax(txtcityplancheck, '_dofindlinear')
            }
            else {
                submitBuild();
            }
        }
    }
}
function PresubmitBuild() {
    // U_CallShowWaiting('Loading...')

    if (((G("txtcity").value != "") && (G("hidcity").value == "")) || ((G("txtcityplan").value != "") && (G("hidcityplan").value == ""))) {
        if ((G("txtcity").value != "") && (G("hidcity").value == "")) {
            var txtcityval = G("txtcity").value;
            var txtcitycheck = 'WYAJaxPage/ajax_Main.aspx?FUNC=newcitylist&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG + '&hidcontrolvalue=hidcity&txtcontrolvalue=' + txtcityval + '&regionid=' + CountRegionSelected(2) + '&RND=' + new Date()
            doAjax(txtcitycheck, '_dofind')
        }

        if ((G("txtcityplan").value != "") && (G("hidcityplan").value == "") && (G("hidcity").value != "")) {
            var txtcityplanval = document.getElementById("txtcityplan").value;
            var txtcityplancheck = 'WYAJaxPage/ajax_Main.aspx?FUNC=newcitylist&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG + '&hidcontrolvalue=hidcityplan&txtcontrolvalue=' + txtcityplanval + '&regionid=' + CountRegionSelected(2) + '&RND=' + new Date()
            doAjax(txtcityplancheck, '_dofindlinear')
        }
    }

    else {
        submitBuild()
    }
}

function submitBuild() {
    U_CallShowWaiting('Loading...')

    G("hidregionscode").value = CountRegionSelected(2, true);
    if (CheckMandatoryBuild() == true) {
        G("hidregionid").value = CountRegionSelected(2);
        G("hidCheckDivStartDate").value = G("startdate").style.display

        //'call build yourtour'
        try {
            SubmitFromPressBuildTour()
            UShowingWaitMessage(P_INDEX_LBL_ALERT_WAIT_BUILDTOUR, P_INDEX_LBL_ALERT_WAIT_BUILDTOUR1)
            var _ajaxparam = '&hidregionid=' + G("hidregionid").value +
                                 '&StartDateTour=' + G("StartDateTour").value +
                                 '&EndDateTour=' + G("EndDateTour").value +
                                 '&CboStartDate=' + G("CboStartDate").value +
                                 '&CboEndDate=' + G("CboEndDate").value +
                                 '&StartDateTourWithDay=' + G("StartDateTourWithDay").value +
                                 '&EndDateTourWithDay=' + G("EndDateTourWithDay").value +
                                 '&city=' + G("hidcity").value +
                                 '&hidperiodrange=' + G("hidperiodrange").value +
                                 '&country=' + G("CboCountry").value +
                                 '&cityplan=' + G("hidcityplan").value

            if (G("radioStartPoint1").checked) _ajaxparam += '&radioStartPoint=' + G("radioStartPoint1").value
            if (G("radioStartPoint2").checked) _ajaxparam += '&radioStartPoint=' + G("radioStartPoint2").value

            if (G("radioStartFrom1").checked) _ajaxparam += '&radioStartFrom=' + G("radioStartFrom1").value
            if (G("radioStartFrom2").checked) _ajaxparam += '&radioStartFrom=' + G("radioStartFrom2").value

            if (G("radioKindTour1").checked) _ajaxparam += '&radioKindTour=' + G("radioKindTour1").value
            if (G("radioKindTour2").checked) _ajaxparam += '&radioKindTour=' + G("radioKindTour2").value

            if (G("radioEndPoint1").checked) _ajaxparam += '&radioEndPoint=' + G("radioEndPoint1").value
            if (G("radioEndPoint2").checked) _ajaxparam += '&radioEndPoint=' + G("radioEndPoint2").value

            if (G("radioFinis1").checked) _ajaxparam += '&radioFinis=' + G("radioFinis1").value
            if (G("radioFinis2").checked) _ajaxparam += '&radioFinis=' + G("radioFinis2").value

            //_ajaxparam += '&hidCheckDivStartDate=' + G("hidCheckDivStartDate").value + '&sessionvariable=' + G("sessionvariable").value +
            //                   '&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG;

            _ajaxparam += '&hidCheckDivStartDate=' + G("hidCheckDivStartDate").value +
                                 '&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG;
            doAjaX(P_INDEX_PATH_WEBSERVER_MAIN + '?RND=' + new Date(), '&MODE=buildtour' + _ajaxparam, '_dosubmitbuild')
            _homepagesettime()
            //----------------------- 

        } catch (e) {
            _homepagesettime_clear()
            _doViewwriteerror(e.message)
        }
    }
}
function _dosubmitbuild(mreturn) {
    var munexpecterror = 'Unexpected Error Occurred,Please contact the administrator.'
    _homepagesettime_clear()
    if (mreturn == '') {
        _doViewwriteerror(munexpecterror)
    } else {
        if ((mreturn.substring(0, 2)) == 'VM') {
            var mreturnn = mreturn.split(";")
        }
        switch (mreturn.substring(0, 2)) {
            case 'OK':
                G("hidsub").value = "Y";
                G("hidkeephotelnight").value = mreturn.substring(2, mreturn.length)
                G("Frmmain").submit();
                break;
            case 'YN':
                _showpanelmessage(mreturn.substring(2, mreturn.length), 2, null, null, null, 'submitBuild()', '_resettheregion()')
                //G("hidkeephotelnight").value = mreturn.substring(2,mreturn.length)
                break;
            case 'OO':
                G("hidsub").value = "Y";
                ShowAlertMessageWait(mreturn.substring(2, mreturn.length), '_aftertheok()', 300, "", "", "")
                //G("hidkeephotelnight").value = mreturn.substring(2,mreturn.length)
                break;
            case 'VM':
                G("hidsub").value = "Y";
                U_ShowOverlay4(mreturnn[1])

                break;
            default:
                _doViewwriteerror(mreturn)
        }
    }
}
//obselete
function _resettheregion() {

}
//-----------------------for auto suggestion--------------------------------------------
//show waiting and submit
function _aftertheok() {
    U_CallShowWaiting('Loading...')
    G("Frmmain").submit();
}
//obselete
function _doHideView(evt, _citylist, _citytext, _citycombo, _ajaxurl, _ajaxfunc, _regionid, _fillvalue) {
    var _enteryn = false
    if (evt != null) {
        var TmpKey;
        if (window.event) { TmpKey = evt.keyCode; } //IE
        else { TmpKey = evt.which; } //Firefox                 
        if (TmpKey == 13) {
            _enteryn = true
        }
    } else {
        _enteryn = true
    }
    if (_enteryn) {
        G(_citylist).style.display = 'none'
        if (G(_citycombo).selectedIndex >= 0) {
            if (_fillvalue != null) {
                G(_fillvalue).value = G(_citycombo).options[G(_citycombo).selectedIndex].value
            }
            G(_citytext).value = G(_citycombo).options[G(_citycombo).selectedIndex].text
        }
        _disablebuildbutton()
    }
}
//obselete
function _doView(evt, _citylist, _citytext, _citycombo, _ajaxurl, _ajaxfunc, _regionid) {
    var TmpKey;
    if (window.event) { TmpKey = evt.keyCode; } //IE
    else { TmpKey = evt.which; } //Firefox                     

    //if keydown, focus on list
    if (TmpKey == 40) {
        eval('try{;G("' + _citycombo + '").selectedIndex = 0;}catch(e){};try{;G("' + _citycombo + '").focus();}catch(e){};')
        return true
    }


    var _ajaxparam = '&txtcontrol=' + eval('G("' + _citytext + '").id') +
                     '&txtcontrolvalue=' + eval('G("' + _citytext + '").value') +
                     '&divcontrol=' + eval('G("' + _citylist + '").id') +
                     '&lstcontrol=' + eval('G("' + _citycombo + '").id') +
                     '&regionid=' + ((_regionid == null) ? CountRegionSelected(2) : G(_regionid).value) +
                     '&countryid=' + G('CboCountry').value +
                     '&LANG=' + P_INDEX_CURRENTSESSION_CURRENTLANG;

    G(_citycombo).length = 0
    G(_citycombo).options[0] = new Option('- loading... -', '')

    G(_citylist).style.display = (G(_citytext).value == '') ? 'none' : ''
    _disablebuildbutton()

    try {
        doAjaX(_ajaxurl, 'MODE=' + _ajaxfunc + _ajaxparam + '&RND=' + new Date(), '_doView_Called')
    } catch (e) {
        _doViewwriteerror(e.message)
    }
}
//------------------------------------------------
//validate build button
function _disablebuildbutton() {
    var _disabledbutton = false
    //    _disabledbutton = (((G("lstcity").value == '') && G("radioStartPoint1").checked) ||
    //                       ((G("lstcityplan").value == '') && G("radioEndPoint1").checked))  
    //    
    G("btnbuild0").style.display = (_disabledbutton) ? "none" : ""
    G("btnbuild1").style.display = (!_disabledbutton) ? "none" : ""
}
function _doView_Called(mreturn) {
    var munexpecterror = 'Unexpected Error Occurred,Please contact the administrator.'
    if (mreturn == '') {
        _doViewwriteerror(munexpecterror)
    } else {
        switch (mreturn.substring(0, 2)) {
            case 'OK':
                eval(mreturn.substring(2, mreturn.length))
                //return array
                //x,y,z,code1,caption1,code2,caption2...
                var _citylist = eval('G("' + mArray[1] + '");')
                var _citytext = eval('G("' + mArray[0] + '");')
                var _citycombo = eval('G("' + mArray[2] + '");')
                var iindex = 0
                _citycombo.length = 0
                //begin with 3 (there are 3 params in ajax)
                //get id + name
                for (var i = 3; i < mArray.length; i += 2) {
                    //-----------------------------------------
                    //userdefined control
                    _citycombo.options[iindex] = new Option(UmakestringforCombo(mArray[i + 1]), mArray[i])
                    iindex++
                    //-----------------------------------------
                }
                break;
            default:
                _doViewwriteerror(munexpecterror)
        }
    }
}
//------------------------------------------------
//showing errror
function _doViewwriteerror(er) {
    //user define

    ShowAlertMessageWait(escape(er), null)
    //    ShowAlertMessageWait(escape(er),null,200,"#d04332")
    //user define
}
//----------------------------------------------------------------------------------------
//return number of room list
function doList() {
    var List = '';
    try {
        var Noroom = G('cboNoRoom').value;
        if (Noroom == 1) {
            List = ''
        }
        else {
            for (var CountRoom = 1; CountRoom <= Noroom; CountRoom++) {
                List += G('cbRoom' + CountRoom).value
            }
        }

    } catch (e) {
    }
    return List
}
//find hotel process
function submithotel() {
    G('ListNumPeople').value = doList()
    G("hidregionscode").value = CountRegionSelected(2, true);
    if (CheckMandatoryHotel() == true) {

        if (G("CboRegionHotel").disabled == true) { //for get value from region map we have array Example = 10,11,12
            G("hidregionid").value = CountRegionSelectedHotel(2);
        }
        else {
            G("hidregionid").value = G("CboRegionHotel").value;
        }


        G("hidsub").value = "S";  //search hotel
        document.forms["Frmmain"].submit()
    }
}
//find activity process
function submitActivity() {
    G("hidregionscode").value = CountRegionSelected(2, true);
    if (CheckMandatoryActivity() == true) {

        if (G("CboRegionActivity").disabled == true) { //for get value from region map we have array Example = 10,11,12
            G("hidregionid").value = CountRegionSelectedActivity(2);
        }
        else {
            G("hidregionid").value = G("CboRegionActivity").value;
        }

        G("hidsub").value = "A"; // search type Activity  
        document.forms["Frmmain"].submit()
    }
}

//----if Layer the map opening then will colse layer-----
//obselete 
function CheckStatuOpenLayerMap() {
}
//validate endpoint radio.
function _doradendpoint() {
    _validateradio()
}
//check city filled in selected region 
//mcity : city / cityplan
function _checkcityinregion_home(mcity) {
    var _hiddend = 'hid' + mcity.substring(3, mcity.length)
    var _hiddenvalue = G(_hiddend).value
    var _hiddenvalues = _hiddenvalue.split(',')
    var _regionslist = CountRegionSelected(2)
    var _regionslists = _regionslist.split(',')
    var _bfoundyn = false
    for (var i = 0; i < _regionslists.length; i++) {
        if (_hiddenvalues[1] == _regionslists[i]) {
            _bfoundyn = true
            break;
        }
    }
    return _bfoundyn
}
//validate startfrom radio
function Check_citY() {
    G("radioStartPoint2").checked = false;
    G("radioStartPoint1").checked = true;
    _validateradio();
}
//validate endat radio
function Check_citY2() {
    G("radioEndPoint2").checked = false;
    G("radioEndPoint1").checked = true;
    _validateradio();
}
//enable/disable city text
//mcity : city htmlcontrol
//mdisable : true = disable
//mhidcity : hidden city where keep pointid
function _disablecity(mcity, mdisable, mhidcity) {
    //G(mcity).disabled = mdisable
    G(mcity).maxLength = (mdisable) ? '0' : '100'
    //if (mdisable || (!_checkcityinregion_home(mcity))) {
    if (mdisable) {
        G(mcity).value = ''
        if (G(mhidcity) != null) G(mhidcity).value = ''
    }
    G(mcity).style.backgroundColor = (mdisable) ? '#f0f0f0' : '#ffffff'
    //if (mdisable) G("divcity").style.display = 'none';//G(mcity).value = ''
}
//validate stratfrom/endfrom radio
function _validateradio() {
    if (G("radioStartPoint1").checked) {
        HideLayerById('StartFrom')
        _disablecity('txtcity', (CountRegionSelected(2) == '') || (!G("radioStartPoint1").checked), 'hidcity')
    } else {
        ShowLayerById('StartFrom');
        _disablecity('txtcity', true, 'hidcity')
    }

    if (G("radioKindTour1").checked) {
        HideLayerById('EndingPoint');
        HideLayerById('FinishAt');
    } else {
        ShowLayerById('EndingPoint');

        if (G("radioEndPoint1").checked) {
            HideLayerById('FinishAt');
            _disablecity('txtcityplan', (CountRegionSelected(2) == '') || (!G("radioEndPoint1").checked), 'hidcityplan')
        } else {
            ShowLayerById('FinishAt');
            _disablecity('txtcityplan', true, 'hidcityplan')
        }
    }
    _disablebuildbutton()
}
function _radiostartpoint() {
    _validateradio()
}
function _radiotourtype() {
    _validateradio()
}
function _radioendpoint() {
    _validateradio()
}

var countryNumber;

//loading page
function _doload() {
    //--- set usercontrol logo display or not display--(is public id from usercontrol) ---
    G("U_IDDivLogo").style.display = "block";
    //G("U_LinkHome").style.display = "none";  
    //------------------------------------------------------------------------

    //---for load pick list room---------------
    OnChangeStartRoomPeople();
    //set position on load the map
    setpositiononload();
    // set disabled of picklist region and txt city for on load 
    SetEnableDisableOfSuggestion(true);
    countryupdates = "0";
    rebuildssRegionsList();
    storeFullRegionsList();

    //------clear row and load data on load ------
    ClearRowRegion();
    ClearArrayPublicmap();
    LoadComboDate();
    //---------set hide or show on user login already ------
    var muserid = P_INDEX_CURRENTUSERID
    var musertype = P_INDEX_CURRENTUSERTYPE
    if (muserid == "0" || musertype == P_INDEX_CONST_ISO_ANONYMOUS) {
        ShowLayerById('divlogform');
        HideLayerById('divlogondone');
        HideLayerById("idwebcome");
        ShowLayerById('U_LinkHome_before');
        HideLayerById('U_LinkHome');
    }
    else {
        ShowLayerById('divlogondone');
        HideLayerById('divlogform')
        ShowLayerById('idwebcome');
        ShowLayerById('U_LinkHome');
        HideLayerById('U_LinkHome_before');
    }
    //----set default start page default-----



    //--------About Tab on start page--------------------------
    G("c1_1").style.display = "block"
//    G("c1_2").style.display = "block"
    G("c2_1").style.display = "none"
    G("tab1").style.display = "block"
    G("tab2").style.display = "none"
    G("tab3").style.display = "none"

    //'loading from previous filling 
    //format = 1|xx|sss,2|xx|ddd
    var _regions = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_REGIONS;
    if (_regions != '') {
        //     _regions = '0,' + _regions
        myPublicMap = _regions.split(',')
        WriteTextRegionHomepage(myPublicMap)
        SetShowHiddenWriteRegionOnHomePage('block')
    }

    G("txtcity").value = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTPOINT;
    G("hidcity").value = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTPOINTID;
    G("radioStartPoint1").checked = (G("txtcity").value != '')
    G("radioStartPoint2").checked = (G("txtcity").value == '')
    _radiostartpoint()

    G("radioStartFrom1").checked = (P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTAT != '2')
    G("radioStartFrom2").checked = (P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTAT == '2')

    G("StartDateTour").value = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_STARTDATE;
    G("EndDateTour").value = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDDATE;

    G("radioKindTour1").checked = (P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_TYPE != '0')
    G("radioKindTour2").checked = (P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_TYPE == '0')
    _radiotourtype()

    G("radioFinis1").checked = (P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDAT != '2')
    G("radioFinis2").checked = (P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDAT == '2')
    _radioendpoint()
    G("txtcityplan").value = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDPOINT;
    G("hidcityplan").value = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_ENDPOINTID;

    G("CboCountry").value = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_COUNTRY;
    if (G("CboCountry").value == '') G("CboCountry").value = '0'

    LoadComboRegion()
    //'loading find hotel
    G("txtcityhotel").value = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_CITY;
    G("StartDateHotel").value = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_CHECKIN;
    G("EndDateHotel").value = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_CHECKOUT;
    G("cboNoPeople").value = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_NUMBERPEOPLE;
    if (G("cboNoPeople").value == '') G("cboNoPeople").value = '2'
    var tempdoloadCboNoRoom = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_NUMBERROOM;
    OnChangeStartRoomPeople(); //load combo box box Noroom 
    G("cboNoRoom").value = tempdoloadCboNoRoom;
    if (G("cboNoRoom").value == '') G("cboNoRoom").value = '1';
    WriteCbroom(); //load combo Noroom on change  
    _loadcboroomsofperson(); // load combo box rooms of person   


    //'loading find activity 
    G("txtcityactivity").value = P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_CITY;
    G("CboActivity").value = P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_TYPE;
    if (G("CboActivity").value == '') G("CboActivity").value = '0'
    G("keywordActivity").value = P_INDEX_CURRENTSESSION_SCREENFINDACTIVITY_KEYWORD;

    _validateradio()

    //----get tab of show type plan or findhogel or findactivty---
    var mtypeplanorfind = P_INDEX_CURRENTSESSION_SCREENBIILDTOUR_KEEPTYPEOFPLANORFIND;
    if (mtypeplanorfind == "") {
        mtypeplanorfind = "1"; //mean default is tab plan
    }
    ChangeTab(mtypeplanorfind)
    //------------------------------------------------------------
    P_INDEX_CURRENTSESSION_ACCEPTCONDITION = P_INDEX_CURRENTSESSION_ACCEPTCONDITION.toLowerCase();
    if (P_INDEX_CURRENTUSERTYPE != "Anonymous") {
        G("btnbuild_legalnotices").style.display = (P_INDEX_CURRENTSESSION_ACCEPTCONDITION == 'true') ? 'none' : 'block';
    }
    G("legal_notice_checkbox").checked = (P_INDEX_CURRENTSESSION_ACCEPTCONDITION == "false") ? false : true;

    storeFullRegionsList();

    countryNumber = G("CboCountry").options.length - 1;
}
//for load combo box rooms of persons.
function _loadcboroomsofperson() {
    try {
        var mvalueRoomsOfperson = P_INDEX_CURRENTSESSION_SCREENFINDHOTEL_LISTNUMPEPPLE;
        if (mvalueRoomsOfperson.length > 0) {
            if (mvalueRoomsOfperson.substr(0, 1) != "") { G("cbRoom1").value = mvalueRoomsOfperson.substr(0, 1); }
            if (mvalueRoomsOfperson.substr(1, 1) != "") { G("cbRoom2").value = mvalueRoomsOfperson.substr(1, 1); }
            if (mvalueRoomsOfperson.substr(2, 1) != "") { G("cbRoom3").value = mvalueRoomsOfperson.substr(2, 1); }
            if (mvalueRoomsOfperson.substr(3, 1) != "") { G("cbRoom4").value = mvalueRoomsOfperson.substr(3, 1); }
            if (mvalueRoomsOfperson.substr(4, 1) != "") { G("cbRoom5").value = mvalueRoomsOfperson.substr(4, 1); }
            if (mvalueRoomsOfperson.substr(5, 1) != "") { G("cbRoom6").value = mvalueRoomsOfperson.substr(5, 1); }
            if (mvalueRoomsOfperson.substr(6, 1) != "") { G("cbRoom7").value = mvalueRoomsOfperson.substr(6, 1); }
            if (mvalueRoomsOfperson.substr(7, 1) != "") { G("cbRoom8").value = mvalueRoomsOfperson.substr(7, 1); }
            if (mvalueRoomsOfperson.substr(8, 1) != "") { G("cbRoom9").value = mvalueRoomsOfperson.substr(8, 1); }
        }
    } catch (e) { }
}

function Void() {
}
//open suggess layer
function _dosuggest() {
    OpenSuggest();
}
function _linetour() {
}
function _roundtour() {
}
function _alltour() {
}
//show start date option
function _doenterdate() {
    HideLayerById('startbetween');
    ShowLayerById('startdate');
    G("hidperiodrange").value = ""
}
//show start between option
function _doentertour() {
    HideLayerById('startdate');
    ShowLayerById('startbetween')
    G("hidperiodrange").value = "Y"
}
//timer for homepage.
//if limited timeout then goto homepage
var _home_page_timedefine
function _homepagesettime() {
    _home_page_timedefine = setTimeout(_homepagesettime_close, 1000 * 60 * P_INDEX_TIMEOUT)
}
function _homepagesettime_clear() {
    clearTimeout(_home_page_timedefine)
}
function _homepagesettime_close() {
    _homepagesettime_clear()
    SendAlertMessageAnswer('Sorry , Timeout Limited ' + P_INDEX_TIMEOUT + ' Minute(s)', null, null, null, '_homepagesettime_go()')
}
function _homepagesettime_go() {
    location.href = P_INDEX_LOCATION_HREF;
}
// -----------------------------Calendar --------------------------------------------- 
function CalendarYear() {
    return P_INDEX_NOW_YEAR
}
function CalendarMonty() {
    return P_INDEX_NOW_MONTH;
}
function CalendarDay() {
    return P_INDEX_NOW_DAY;
}
function CalendarAddYear() {
    return P_INDEX_NOW_YEAR_1;
}
//set value start date
function SetStartDate() {
    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();
    var mtheendday = mday;

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    //var _END_DATE = mendyear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    //sno add function on plugin.js for assing object for clear  
    if (self.gfPop) gfPop.fStartAssingValue(document.Frmmain.StartDateTour, document.Frmmain.EndDateTour, _NOW_DATE, _END_DATE);

    //---move to this one on 2008/11/11---------------
    if (G("StartDateTour").value != '') {
        var mdatess = G("StartDateTour").value
        var mdatesss = mdatess.split("/")
        myear = mdatesss[2]
        mmonth = mdatesss[1]
        mday = mdatesss[0]
    }
    //-------------------------------------------------

    if (G("StartDateTour").value == "" && G("EndDateTour").value == "") {
        //user the good end day
        //  if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTour, [[myear, mmonth, mday], [mendyear, mmonth, mtheendday]]); return false;
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTour, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
    else {
        if (G("EndDateTour").value != "") {
            var mEndDateTour = G("EndDateTour").value;
            mEndDateTour = mEndDateTour.split("/")
            var mEyear = mEndDateTour[2];
            var mEmonth = mEndDateTour[1];
            var mEday = mEndDateTour[0];

            var StartDay = G("StartDateTour").value
            var EndDay = G("EndDateTour").value
            /**/
            var currentDate = new Date()
            var nextyear = new Date()
            var selectdate = G("StartDateTour").value
            var selectenddate = G("EndDateTour").value
            if (selectdate != "") {
                currentDate.setYear(selectdate.substring(6, 10))
                currentDate.setMonth(selectdate.substring(3, 5) - 1)
                currentDate.setDate(selectdate.substring(0, 2))
            }
            else if (selectenddate != "") {
                currentDate.setYear(selectenddate.substring(6, 10))
                currentDate.setMonth(selectenddate.substring(3, 5) - 1)
                currentDate.setDate(selectenddate.substring(0, 2))
                currentDate.setDate(currentDate.getDate() - 29)
            }
            if (currentDate >= nextyear) {
                var newdate = (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + '/' + (currentDate.getMonth() < 10 ? '0' : '') + (currentDate.getMonth() + 1) + '/' + currentDate.getFullYear()
            }
            else {
                var newdate = (nextyear.getDate() < 10 ? '0' : '') + nextyear.getDate() + '/' + (nextyear.getMonth() < 10 ? '0' : '') + (nextyear.getMonth() + 1) + '/' + nextyear.getFullYear()
            }
            var newdates = '' + '\x09' + newdate
            Callback_GetStartDate(newdates)
            /**/
            //doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UGetDayAdd&ModeAddDel=S&StartDay=' + StartDay + '&EndDay=' + EndDay + '&RND=' + new Date(), "Callback_GetStartDate");
        }
        else {
            var mEmonth = "";
            var mEday = "";
            if (mendyear == myear) {
                mEmonth = CalendarMonty();
                mEday = CalendarDay();
            }
            else {
                mEmonth = mmonth;
                //user the good end day
                mEday = mtheendday;
            }
            //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTour, [[myear, mmonth, mday], [mendyear, mEmonth, mEday]]); return false;
            if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTour, [[myear, mmonth, mday], [mendyear, mEmonth, day360]]); return false;
        }

    }
}
//set value enddate
function SetStartDate_new() {
    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();
    var mtheendday = mday;

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    if (G("StartDateTour").value == "" && G("EndDateTour").value == "") {
        if (self.gfPop) gfPop.fPopCalendar_new(document.Frmmain.StartDateTour, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
}

function SetEndDate_new() {
    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();
    var mtheendday = mday;

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;
    if (G("StartDateTour").value == "" && G("EndDateTour").value == "") {
        if (self.gfPop) gfPop.fPopCalendar_new(document.Frmmain.EndDateTour, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
}


function SetEndDate() {
    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    //var _END_DATE = mendyear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    //if start date not fill, alert
    if (G("StartDateTour").value == '') {
        ShowAlertMessageWait(P_INDEX_MSGPLEASEFILLSTARTDATEFIRST)
        return
    }

    //sno add function on plugin.js for assing object for clear  
    if (self.gfPop) gfPop.fStartAssingValue(document.Frmmain.StartDateTour, document.Frmmain.EndDateTour, _NOW_DATE, _END_DATE);

    var mStartDateTour = G("StartDateTour").value;
    if (mStartDateTour != "") {
        mStartDateTour = mStartDateTour.split("/")
        myear = mStartDateTour[2];
        mmonth = mStartDateTour[1];
        mday = mStartDateTour[0];

        var StartDay = ""
        var EndDay = G("StartDateTour").value;

        /* */

        var currentDate = new Date()
        var nextyear = new Date()
        var selectdate = G("StartDateTour").value
        currentDate.setYear(selectdate.substring(6, 10))
        currentDate.setMonth(selectdate.substring(3, 5) - 1)
        currentDate.setDate(selectdate.substring(0, 2))
        currentDate.setDate(currentDate.getDate() + 29)
        nextyear.setDate(nextyear.getDate() + 365)

        if (currentDate >= nextyear) {
            var newdate = (nextyear.getDate() < 10 ? '0' : '') + nextyear.getDate() + '/' + (nextyear.getMonth() < 10 ? '0' : '') + (nextyear.getMonth() + 1) + '/' + nextyear.getFullYear()
        }
        else {
            var newdate = (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + '/' + (currentDate.getMonth() < 10 ? '0' : '') + (currentDate.getMonth() + 1) + '/' + currentDate.getFullYear()
        }
        var newdates = '' + '\x09' + newdate
        Callback_GetEndDate(newdates)
        /* */

        //doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UGetDayAdd&ModeAddDel=E&StartDay=' + StartDay + '&EndDay=' + EndDay + '&RND=' + new Date(), "Callback_GetEndDate");
    }
    else {
        //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateTour, [[myear, mmonth, mday], [mendyear, mmonth, mday]]); return false;
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateTour, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
}

function Callback_GetStartDate(mreturn) {
    if (mreturn != "") {
        //end date
        var mStartDateTour = G("EndDateTour").value;
        mStartDateTour = mStartDateTour.split("/")
        mEyear = mStartDateTour[2];
        mEmonth = mStartDateTour[1];
        mEday = mStartDateTour[0];

        //start date
        var msplitvalue = mreturn.split("\x09");
        mreturn = msplitvalue[1].split("/");
        var mSyear = mreturn[2];
        var mSmonth = mreturn[1];
        var mSday = mreturn[0];
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTour, [[mSyear, mSmonth, mSday], [mEyear, mEmonth, mEday]]); return false;
    }
}

function Callback_GetEndDate(mreturn) {
    if (mreturn != "") {
        //start date
        var mStartDateTour = G("StartDateTour").value;
        mStartDateTour = mStartDateTour.split("/")
        mSyear = mStartDateTour[2];
        mSmonth = mStartDateTour[1];
        mSday = mStartDateTour[0];

        //end date
        var msplitvalue = mreturn.split("\x09");
        mreturn = msplitvalue[1].split("/");
        var mEyear = mreturn[2];
        var mEmonth = mreturn[1];
        var mEday = mreturn[0];
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateTour, [[mSyear, mSmonth, mSday], [mEyear, mEmonth, mEday]]); return false;
    }
}
// ---- calendar with day ------
//set within startdate
function SetStartDateWithDay() {
    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();
    var mtheendday = mday;

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    //var _END_DATE = mendyear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    //sno add function on plugin.js for assing object for clear  
    if (self.gfPop) gfPop.fStartAssingValue(document.Frmmain.StartDateTourWithDay, document.Frmmain.EndDateTourWithDay, _NOW_DATE, _END_DATE);
    //---move to this one on 2008/11/11---------------
    if (G("StartDateTourWithDay").value != '') {
        var mdatess = G("StartDateTourWithDay").value
        var mdatesss = mdatess.split("/")
        myear = mdatesss[2]
        mmonth = mdatesss[1]
        mday = mdatesss[0]
    }
    //-------------------------------------------------
    if (G("StartDateTourWithDay").value == "" && G("EndDateTourWithDay").value == "") {
        //user the good end day
        //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTourWithDay, [[myear, mmonth, mday], [mendyear, mmonth, mtheendday]]); return false;
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTourWithDay, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
    else {
        if (G("EndDateTourWithDay").value != "") {
            var mEndDateTour = G("EndDateTourWithDay").value;
            mEndDateTour = mEndDateTour.split("/")
            var mEyear = mEndDateTour[2];
            var mEmonth = mEndDateTour[1];
            var mEday = mEndDateTour[0];

            var StartDay = G("StartDateTourWithDay").value
            var EndDay = G("EndDateTourWithDay").value
            /**/
            var currentDate = new Date()
            var nextyear = new Date()
            var selectdate = G("StartDateTourWithDay").value
            var selectenddate = G("EndDateTourWithDay").value
            if (selectdate != "") {
                currentDate.setYear(selectdate.substring(6, 10))
                currentDate.setMonth(selectdate.substring(3, 5) - 1)
                currentDate.setDate(selectdate.substring(0, 2))
            }
            else if (selectenddate != "") {
                currentDate.setYear(selectenddate.substring(6, 10))
                currentDate.setMonth(selectenddate.substring(3, 5) - 1)
                currentDate.setDate(selectenddate.substring(0, 2))
                currentDate.setDate(currentDate.getDate() - 29)
            }
            if (currentDate >= nextyear) {
                var newdate = (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + '/' + (currentDate.getMonth() < 10 ? '0' : '') + (currentDate.getMonth() + 1) + '/' + currentDate.getFullYear()
            }
            else {
                var newdate = (nextyear.getDate() < 10 ? '0' : '') + nextyear.getDate() + '/' + (nextyear.getMonth() < 10 ? '0' : '') + (nextyear.getMonth() + 1) + '/' + nextyear.getFullYear()
            }
            var newdates = '' + '\x09' + newdate
            Callback_GetStartDateWithDay(newdates)

            /**/
            //doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UGetDayAdd&ModeAddDel=S&StartDay=' + StartDay + '&EndDay=' + EndDay + '&RND=' + new Date(), "Callback_GetStartDateWithDay");
        }
        else {
            var mEmonth = "";
            var mEday = "";
            if (mendyear == myear) {
                mEmonth = CalendarMonty();
                mEday = CalendarDay();
            }
            else {
                mEmonth = mmonth;
                //user the good end day
                mEday = mtheendday;
            }

            //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTourWithDay, [[myear, mmonth, mday], [mendyear, mEmonth, mEday]]); return false;
            if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTourWithDay, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
        }

    }
}
//set within enddate
function SetEndDateWithDay() {

    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    //var _END_DATE = mendyear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    //if start date not fill, alert
    if (G("StartDateTourWithDay").value == '') {
        ShowAlertMessageWait(P_INDEX_MSGPLEASEFILLSTARTDATEFIRST)
        return
    }

    //sno add function on plugin.js for assing object for clear  
    if (self.gfPop) gfPop.fStartAssingValue(document.Frmmain.StartDateTourWithDay, document.Frmmain.EndDateTourWithDay, _NOW_DATE, _END_DATE);

    var mStartDateTour = G("StartDateTourWithDay").value;
    if (mStartDateTour != "") {
        mStartDateTour = mStartDateTour.split("/")
        myear = mStartDateTour[2];
        mmonth = mStartDateTour[1];
        mday = mStartDateTour[0];

        var StartDay = ""
        var EndDay = G("StartDateTourWithDay").value;

        /**/

        var currentDate = new Date()
        var nextyear = new Date()
        var selectdate = G("StartDateTourWithDay").value
        currentDate.setYear(selectdate.substring(6, 10))
        currentDate.setMonth(selectdate.substring(3, 5) - 1)
        currentDate.setDate(selectdate.substring(0, 2))
        currentDate.setDate(currentDate.getDate() + 29)
        nextyear.setDate(nextyear.getDate() + 365)

        if (currentDate >= nextyear) {
            var newdate = (nextyear.getDate() < 10 ? '0' : '') + nextyear.getDate() + '/' + (nextyear.getMonth() < 10 ? '0' : '') + (nextyear.getMonth() + 1) + '/' + nextyear.getFullYear()
        }
        else {
            var newdate = (currentDate.getDate() < 10 ? '0' : '') + currentDate.getDate() + '/' + (currentDate.getMonth() < 10 ? '0' : '') + (currentDate.getMonth() + 1) + '/' + currentDate.getFullYear()
        }
        var newdates = '' + '\x09' + newdate
        Callback_GetEndDateWithDay(newdates)
        /**/


        //doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UGetDayAdd&ModeAddDel=E&StartDay=' + StartDay + '&EndDay=' + EndDay + '&RND=' + new Date(), "Callback_GetEndDateWithDay");
    }
    else {
        // if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateTourWithDay, [[myear, mmonth, mday], [mendyear, mmonth, mday]]); return false;
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateTourWithDay, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
}

function Callback_GetStartDateWithDay(mreturn) {
    if (mreturn != "") {
        //end date
        var mStartDateTour = G("EndDateTourWithDay").value;
        mStartDateTour = mStartDateTour.split("/")
        mEyear = mStartDateTour[2];
        mEmonth = mStartDateTour[1];
        mEday = mStartDateTour[0];

        //start date
        var msplitvalue = mreturn.split("\x09");
        mreturn = msplitvalue[1].split("/");
        var mSyear = mreturn[2];
        var mSmonth = mreturn[1];
        var mSday = mreturn[0];
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateTourWithDay, [[mSyear, mSmonth, mSday], [mEyear, mEmonth, mEday]]); return false;
    }
}

function Callback_GetEndDateWithDay(mreturn) {
    if (mreturn != "") {
        //start date
        var mStartDateTour = G("StartDateTourWithDay").value;
        mStartDateTour = mStartDateTour.split("/")
        mSyear = mStartDateTour[2];
        mSmonth = mStartDateTour[1];
        mSday = mStartDateTour[0];
        var totalDate = new Date();
        totalDate.setYear(mSyear);
        totalDate.setMonth(mSmonth - 1);
        totalDate.setDate(mSday);
        var addday = parseInt(G("CboStartDate").value);
        addday = addday - 1;
        totalDate.setDate(totalDate.getDate() + addday)
        var mStartDateTourday = totalDate.toString();
        var strLen = mStartDateTourday.length;
        if (UISIEBrowserYN()) {
            mSyear1 = mStartDateTourday.substring(28, 33);
            mStartDateTourday = mStartDateTourday.slice(0, strLen - 40);
            mStartDateTourday = mStartDateTourday.split(" ")
            mSmonth2 = mStartDateTourday[1];
            mSday3 = mStartDateTourday[2];
        }
        else {
            mStartDateTourday = mStartDateTourday.slice(0, strLen - 40);
            mStartDateTourday = mStartDateTourday.split(" ")
            mSyear1 = mStartDateTourday[3];
            mSmonth2 = mStartDateTourday[1];
            mSday3 = mStartDateTourday[2];
        }
        if (mSmonth2 == "Jan") { mSmonth2 = "1"; }
        else if (mSmonth2 == "Feb") { mSmonth2 = "2"; }
        else if (mSmonth2 == "Mar") { mSmonth2 = "3"; }
        else if (mSmonth2 == "Apr") { mSmonth2 = "4"; }
        else if (mSmonth2 == "May") { mSmonth2 = "5"; }
        else if (mSmonth2 == "Jun") { mSmonth2 = "6"; }
        else if (mSmonth2 == "Jul") { mSmonth2 = "7"; }
        else if (mSmonth2 == "Aug") { mSmonth2 = "8"; }
        else if (mSmonth2 == "Sep") { mSmonth2 = "9"; }
        else if (mSmonth2 == "Oct") { mSmonth2 = "10"; }
        else if (mSmonth2 == "Nov") { mSmonth2 = "11"; }
        else { mSmonth2 = "12"; }

        //end date
        var msplitvalue = mreturn.split("\x09");
        mreturn = msplitvalue[1].split("/");
        var mEyear = mreturn[2];
        var mEmonth = mreturn[1];
        var mEday = mreturn[0];
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateTourWithDay, [[mSyear1, mSmonth2, mSday3], [mEyear, mEmonth, mEday]]); return false;
    }
}

// ---- calendar hotel ------
//set start date in hotel tab
function SetStartDateHotel() {
    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    //var _END_DATE = mendyear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    //sno add function on plugin.js for assing object for clear  
    if (self.gfPop) gfPop.fStartAssingValue(document.Frmmain.StartDateHotel, document.Frmmain.EndDateHotel, _NOW_DATE, _END_DATE);
    //---move to this one on 2008/11/11---------------
    if (G("StartDateHotel").value != '') {
        var mdatess = G("StartDateHotel").value
        var mdatesss = mdatess.split("/")
        myear = mdatesss[2]
        mmonth = mdatesss[1]
        mday = mdatesss[0]
    }
    //------------------------------------------------- 
    if (G("StartDateHotel").value == "" && G("EndDateHotel").value == "") {
        //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateHotel, [[myear, mmonth, mday], [mendyear, mmonth, mday]]); return false;
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateHotel, [[myear, mmonth, mday], [mendyear, mmonth, day360]]); return false;
    }
    else {
        if (G("EndDateHotel").value != "") {
            var mEndDateTour = G("EndDateHotel").value;
            mEndDateTour = mEndDateTour.split("/")
            var mEyear = mEndDateTour[2];
            var mEmonth = mEndDateTour[1];
            var mEday = mEndDateTour[0];

            var StartDay = G("StartDateHotel").value
            var EndDay = G("EndDateHotel").value

            doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UGetDayAdd&ModeAddDel=OS&StartDay=' + StartDay + '&EndDay=' + EndDay + '&RND=' + new Date(), "Callback_GetStartDateHotel");

        }
        else {
            var mEmonth = "";
            var mEday = "";
            if (mendyear == myear) {
                mEmonth = CalendarMonty();
                mEday = CalendarDay();
            }
            else {
                mEmonth = mmonth;
                mEday = mday;
            }

            //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateHotel, [[myear, mmonth, mday], [mendyear, mEmonth, mEday]]); return false;
            if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateHotel, [[myear, mmonth, mday], [mendyear, mEmonth, day360]]); return false;
        }

    }
}

//set end date in hotel tab
function SetEndDateHotel() {
    var _NOW_DATE1DAY = P_INDEX_NOW_ADDDAYS_1;
    var nowsplit1day = _NOW_DATE1DAY.split("/");

    var myear = CalendarYear();
    var mmonth = CalendarMonty();
    var mday = CalendarDay();
    var mendyear = CalendarAddYear();

    var date360 = DATA_DATENOWADD360;
    var day360 = date360.substring(0, 2);

    var _NOW_DATE = myear + "," + mmonth + "," + mday;
    //var _END_DATE = mendyear + "," + mmonth + "," + mday;
    var _END_DATE = mendyear + "," + mmonth + "," + day360;

    //if start date not fill, alert
    if (G("StartDateHotel").value == '') {
        ShowAlertMessageWait(P_INDEX_MSGPLEASEFILLSTARTDATEFIRST)
        return
    }

    var myearout = nowsplit1day[2]
    var mmonthout = nowsplit1day[1];
    var mdayout = nowsplit1day[0];

    //sno add function on plugin.js for assing object for clear  
    if (self.gfPop) gfPop.fStartAssingValue(document.Frmmain.StartDateHotel, document.Frmmain.EndDateHotel, _NOW_DATE, _END_DATE);

    var mStartDateTour = G("StartDateHotel").value;
    if (mStartDateTour != "") {
        mStartDateTour = mStartDateTour.split("/")
        myear = mStartDateTour[2];
        mmonth = mStartDateTour[1];
        mday = mStartDateTour[0];

        var StartDay = ""
        var EndDay = G("StartDateHotel").value;
        doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UGetDayAdd&ModeAddDel=OE&StartDay=' + StartDay + '&EndDay=' + EndDay + '&RND=' + new Date(), "Callback_GetEndDateHotel");
    }
    else {
        //if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateHotel, [[myearout, mmonthout, mdayout], [mendyear, mmonth, mday]]); return false;
        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateHotel, [[myearout, mmonthout, mdayout], [mendyear, mmonth, day360]]); return false;
    }
}

function Callback_GetStartDateHotel(mreturn) {
    if (mreturn != "") {

        //start date
        var msplitvalue = mreturn.split("\x09");
        mreturn = msplitvalue[1].split("/");
        var mSyear = mreturn[2];
        var mSmonth = mreturn[1];
        var mSday = mreturn[0];

        //end date
        mreturn = msplitvalue[0].split("/")
        mEyear = mreturn[2];
        mEmonth = mreturn[1];
        mEday = mreturn[0];


        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.StartDateHotel, [[mSyear, mSmonth, mSday], [mEyear, mEmonth, mEday]]); return false;
    }
}

function Callback_GetEndDateHotel(mreturn) {
    if (mreturn != "") {
        //end date
        var msplitvalue = mreturn.split("\x09");
        mreturn = msplitvalue[1].split("/");
        var mEyear = mreturn[2];
        var mEmonth = mreturn[1];
        var mEday = mreturn[0];

        //start date for checkout
        mreturn = msplitvalue[0].split("/");
        var mSyear = mreturn[2];
        var mSmonth = mreturn[1];
        var mSday = mreturn[0];

        if (self.gfPop) gfPop.fPopCalendar(document.Frmmain.EndDateHotel, [[mSyear, mSmonth, mSday], [mEyear, mEmonth, mEday]]); return false;
    }
}

//-------------------- end Calendar ----------------------------------
//----------------about open tour ---------
//show touroverview
//tripid : triprequestid
function TourOverview(tripid) {
    ShowingWaitMessage1('Loading...')
    searchval = "OT/";
    doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=checksessionwithbacksearch&Param=' + searchval, "TourOverviewnew");
    G("hidsub").value = "T";  //tour
    G("U_Index_hidTripId").value = tripid;
    document.forms[0].submit();
}
function TourOverviewnew(mreturn) {
}
function _ClearAutoFill(me, e) {
    var TmpKey;
    if (window.event) { TmpKey = e.keyCode; } //IE
    else { TmpKey = e.which; } 				//Firefox

    if (parseFloat(TmpKey) != 13) {
        G(me).value = ''
    }
}
//------------------------------
function SubmitFromPressBuildTour() {
    if (G("legal_notice_checkbox").checked) {
        try {
            //ShowingWaitMessage1('Please wait while saving...')
            doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=USaveMyAcceptCondition' + '&RND=' + new Date(), "Callback_SaveAcceptConditions")
        } catch (e) {
            ShowAlertMessageWait(escape(e.message), "", 75)
        }
    }
}
function Callback_SaveAcceptConditions(mreturn) {
    //    if (mreturn == "OK") {
    //    }
}

function AcceptConditionClick() {
    if (G("legal_notice_checkbox").checked == false) {
        try {
            //ShowingWaitMessage1('Please wait while saving...')
            doAjaX(P_INDEX_PATH_WEBSERVER_MAIN, 'MODE=UTurnOffAcceptCondition' + '&RND=' + new Date(), "Callback_AcceptConditionClick")
        } catch (e) {
            ShowAlertMessageWait(escape(e.message), "", 75)
        }
    }
}

function Callback_AcceptConditionClick(mreturn) {
    //    if (mreturn != "") {
    //        alert(mreturn);
    //        }
}

//used to estimate a string.length in pixel
function getWidthOfString(text) { var spanElement = document.createElement('emptyspan'); spanElement.innerHTML = text; document.body.appendChild(spanElement); var width = spanElement.offsetWidth; document.body.removeChild(spanElement); return width; }

//used to modify login textBox width
//cL=colLenght;cM=colMargin;CMiL=CorrectionMinLimit;CMiF=CorrectionMinFactor;CMaL=CorrectionMaxLimit;CMaF=CorrectionMaxFactor;
function modify_login_width(uname, upwd) {
    cL = 214; cM = 6; CMiL = 60; CMiF = 1.1; CMaL = 120; CMaF = 0.92
    uname = getWidthOfString(uname); upwd = getWidthOfString(upwd);
    if (uname > CMaL) uname = parseInt(uname * CMaF); if (upwd > CMaL) upwd = parseInt(upwd * CMaF);
    if (uname < CMiL) uname = parseInt(uname * CMiF); if (upwd < CMiL) upwd = parseInt(upwd * CMiF);
    if (upwd >= uname - cM / 2 && upwd <= uname + cM / 2) upwd = uname;
    G("user-width").style.width = uname + "px"; G("pwd-width").style.width = upwd + "px";
    G("musername").style.width = cL - uname - cM + "px"; G("mpassword").style.width = cL - upwd - cM + "px";
}

function TourOverviewPDF(tripID) {
    U_ShowAlertMessage("_TourOverviewPDF(" + tripID + ")", "", P_INDEX_LBL_ALERT_MESSAGE_PDF, 4, "", "I")
    U_ShowOverlay(350, 144, 'U_DivMessage')
}
function _TourOverviewPDF(tripID) {
    _ClseAlertMessage(2)
    setTimeout("Ajax_TourOverviewPDF(" + tripID + ")", 300)
}
function Ajax_TourOverviewPDF(tripID) {
    U_CallShowWaiting();
    doAjaX('WYAJaxPage/Ajax_Report.aspx',
                           'MODE=UPrintReportPDF' +
                           '&U_Mytour_hidTripId=' + tripID +
                           '&U_Print_hidTourType=' + "" +
                           '&U_Print_hidCboDay=' + "" +
                           '&U_Mytour_hidTypeTour=' + "" +
                           '&RND=' + new Date(), "Callback_TourOverviewPDF");
}

function Callback_TourOverviewPDF(mreturn) {
    var mStringResult = mreturn.split('\x09');
    if (mStringResult[0] == "OK") {
        window.open(mStringResult[1]);
    }
    else if (mStringResult[0] == "KO") {
        ShowAlertMessageWait(mStringResult[1], "", 75)
    }
    else {
        ShowAlertMessageWait(mreturn, "", 75)
    }
    UClose_Overlay()
}

function textMatch(tText) {

    if ((G("hidcity").value == "") && (G("txtcity_autocomplete_list").childNodes.length > 0)) {
        var trimText = tText;
        for (i = 0; i < G("txtcity_autocomplete_list").childNodes.length; i++) {
            if (UISIEBrowserYN()) //IE
            {
                if (G("txtcity_autocomplete_list").childNodes[i].innerText.toUpperCase() == trimText.toUpperCase()) {
                    G("txtcity_autocomplete_list").childNodes[i].onclick();
                    return;
                }
            }
            else {
                if (G("txtcity_autocomplete_list").childNodes[i].textContent.toUpperCase() == trimText.toUpperCase()) {
                    G("txtcity_autocomplete_list").childNodes[i].onclick();
                }
            }
        }
    }
}

function textLinearMatch(planText) {
    if ((G("hidcityplan").value == "") && (G("txtcityplan_autocomplete_list").childNodes.length > 0)) {
        var pText = planText;
        for (i = 0; i < G("txtcityplan_autocomplete_list").childNodes.length; i++) {
            if (UISIEBrowserYN()) //IE
            {
                if (G("txtcityplan_autocomplete_list").childNodes[i].innerText.toUpperCase() == pText.toUpperCase()) {
                    G("txtcityplan_autocomplete_list").childNodes[i].onclick();
                }
            }
            else {
                if (G("txtcityplan_autocomplete_list").childNodes[i].textContent.toUpperCase() == pText.toUpperCase()) {
                    G("txtcityplan_autocomplete_list").childNodes[i].onclick();
                }
            }
        }
    }
}

function dotextMatchlinear(tText, object) {

    if ((G("hidcityplan").value == "") && (object.childNodes.length > 0)) {
        var trimText = tText;
        for (i = 0; i < object.childNodes.length; i++) {
            if (UISIEBrowserYN()) //IE
            {
                if (object.childNodes[i].innerText.toUpperCase() == trimText.toUpperCase()) {
                    var ctyplanname = object.childNodes[i].getAttribute("onselect")
                    var ctyplanname1 = ctyplanname.split(";")
                    var ctyplanname2 = ctyplanname1[1].split("=")
                    var ctyplanname3 = ctyplanname2[1].replace(/'/g, "")
                    G("hidcityplan").value = ctyplanname3;
                }
            }
            else {
                if (object.childNodes[i].textContent.toUpperCase() == trimText.toUpperCase()) {
                    var ctyplanname = object.childNodes[i].getAttribute("onselect")
                    var ctyplanname1 = ctyplanname.split(";")
                    var ctyplanname2 = ctyplanname1[1].split("=")
                    var ctyplanname3 = ctyplanname2[1].replace(/'/g, "")
                    G("hidcityplan").value = ctyplanname3;
                }
            }
        }
    }

}

function dotextMatch(tText, object) {

    if ((G("hidcity").value == "") && (object.childNodes.length > 0)) {
        var trimText = tText;
        for (i = 0; i < object.childNodes.length; i++) {
            if (UISIEBrowserYN()) //IE
            {
                if (object.childNodes[i].innerText.toUpperCase() == trimText.toUpperCase()) {
                    var ctyname = object.childNodes[i].getAttribute("onselect")
                    var ctyname1 = ctyname.split(";")
                    var ctyname2 = ctyname1[1].split("=")
                    var ctyname3 = ctyname2[1].replace(/'/g, "")
                    G("hidcity").value = ctyname3;
                }
            }
            else {
                if (object.childNodes[i].textContent.toUpperCase() == trimText.toUpperCase()) {
                    var ctyname = object.childNodes[i].getAttribute("onselect")
                    var ctyname1 = ctyname.split(";")
                    var ctyname2 = ctyname1[1].split("=")
                    var ctyname3 = ctyname2[1].replace(/'/g, "")
                    G("hidcity").value = ctyname3;
                }
            }
        }
    }

}

function indexOverlayClose(lang) {
    G("U_hidlang").value = lang;
    UClose_Overlay();
    document.forms[0].submit();
}



function Set_Cookie(name, value, expires, path, domain, secure) {
    var today = new Date();
    today.setTime(today.getTime());
    if (expires) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date(today.getTime() + (expires));

    document.cookie = name + "=" + escape(value) +
        ((expires) ? ";expires=" + expires_date.toGMTString() : "") +
        ((path) ? ";path=" + path : "") +
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
}


function Get_Cookie(check_name) {
    var a_all_cookies = document.cookie.split(';');
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for (i = 0; i < a_all_cookies.length; i++) {

        a_temp_cookie = a_all_cookies[i].split('=');

        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        if (cookie_name == check_name) {
            b_cookie_found = true;
            if (a_temp_cookie.length > 1) {
                cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
            }

            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if (!b_cookie_found) {
        return null;
    }
}

function loadOverlay() {
    if (Get_Cookie('OverlayStatus') == null) {
        U_ShowOverlay(800, 425, 'U_DivOverlay1');
        Set_Cookie('OverlayStatus', false, 30, '/', '', '')
    }
}

function enableRegion() {
    document.getElementById("CboRegion").disabled = false;
}

//------------------------------------------------
//for this function if user click the map will assign value to array.....
//e : obselete
//indexkey : regionid
//nikname : obselete
function r_all(country, e, IndexKey, nikname) {
    if (PublicStatus == false) {
        PublicStatus = true
        var check_region_map = checkregion_map(country, IndexKey);
        if (check_region_map == "0") {
            PublicStatus = false;
        }
        else {
            var _regionmap = _get_region_map(country, IndexKey)
            var _toggle = _regionmap.style.display
            _regionmap.style.display = (_toggle == '') ? 'none' : ''
            if (_regionmap.style.display == "none") {
                countrySelected--;
            }
            else {
                countrySelected++;
            }
            SetArrayPositionValueMap(IndexKey, (_toggle == ''))
            PublicStatus = false;
        }
    }
    if (CountRegionSelected(2).length >= 1) {
        G("CbochooseCountry").disabled = true;
    }
    else {
        G("CbochooseCountry").disabled = false;
    }
}

//get retion map region object : when click on layermap
//nregionid : regionid
function _get_region_map(country, nregionid) {
    if (country != "0") {
        var _tmplang = P_INDEX_CURRENTSESSION_CURRENTLANG;
        if ((_tmplang != 'EN') && (_tmplang != 'FR')) _tmplang = 'FR'
        if (G("map_" + nregionid) == null) {
            var grayImage = new Image();
            grayImage.src = "Theme/images/images_map/map_" + country + "_" + _tmplang + "_" + nregionid + ".gif";
            grayImage.id = "map_" + nregionid;
            grayImage.setAttribute("useMap", "#" + country);
            grayImage.style.display = "inline";
            grayImage.style.position = "absolute";
            grayImage.style.top = "0px";
            grayImage.style.left = "0px";
            G("IdImageMap_" + country.toUpperCase()).appendChild(grayImage);
        }
        return G("map_" + nregionid)
    }
}

function SetValuStartMap(country) {
    if (country != "0") {
        var e = G("hidregion" + country);
        var mtempobj;
        if (e != null) {
            var full_regions = e.value;
            var region_id = full_regions.split(",");
            var exist_regioncheck;
            for (var i = 0; i < region_id.length; i++) {
                var r_region_id = region_id[i];
                r_region_id = r_region_id.replace(/^\s+/, "");
                mtempobj = _get_region_map(country, r_region_id)
                mtempobj.style.display = ((UVal(myPublicMap[r_region_id]) != 0) ? '' : 'none')
            }
        } else {
            for (var i = 0; i < myPublicMap.length; i++) {
                mtempobj = _get_region_map(country, i)
                mtempobj.style.display = ((UVal(myPublicMap[i]) != 0) ? '' : 'none')
            }
        }
    }
}

function _nameactive_test(country) {
    var e = G("hidregion" + country);
    if (e != null) {
        var full_regions = e.value;
        var region_id = full_regions.split(",");
        if (region_id.length > 0) {
            for (var j = 0; j <= region_id.length - 2; j++) {
                var r_region_id = region_id[j];
                r_region_id = r_region_id.replace(/^\s+/, "");
                _getnameofregion(country, r_region_id);
            }
        }
    }
}

//return name of region
//mregionid : regionid
function _getnameofregion(country, nregion_id) {
    if (country == null) {
        for (var i = 0; i < G("CboRegion").length; i++) {
            if (G("CboRegion").options[i].value == nregion_id) {
                return G("CboRegion").options[i].text
            }
        }
    } else {
        var e = G("hidregion" + country + "act");
        if (e != null) {
            var full_regions_active = e.value;
            var _tmplang = P_INDEX_CURRENTSESSION_CURRENTLANG;
            var textregion;
            var mregionexist = "0";
            var region_id_active = full_regions_active.split(",");
            for (var i = 0; i <= region_id_active.length - 2; i++) {
                var r_region_id = region_id_active[i];
                r_region_id = r_region_id.replace(/^\s+/, "");
                if (r_region_id == nregion_id) {
                    mregionexist = nregion_id
                }
                if (mregionexist != "0") { break; }
            }
            if (mregionexist == "0") {
                var grayImage = new Image();
                grayImage.src = "Theme/images/images_map/map_" + country + "_grey_" + _tmplang + "_" + nregion_id + ".gif";
                grayImage.id = "map_" + nregion_id;
                grayImage.setAttribute("useMap", "#" + country);
                grayImage.style.display = "inline";
                grayImage.style.position = "absolute";
                grayImage.style.top = "0px";
                grayImage.style.left = "0px";
                G("IdImageMap_" + country.toUpperCase()).appendChild(grayImage);
            }
        } else {
            for (var i = 0; i < G("CboRegion").length; i++) {
                if (G("CboRegion").options[i].value == mregionid) {
                    return G("CboRegion").options[i].text
                }
            }
        }
    }
}

function checkregion_map(country, mregionid) {
    var mregionexist = "0";
    var s = G("hidregion" + country + "act");
    if (s != null) {
        var full_regions_active = s.value;
        var region_id_active = full_regions_active.split(",");
        for (var i = 0; i <= region_id_active.length - 2; i++) {
            var r_region_id = region_id_active[i];
            r_region_id = r_region_id.replace(/^\s+/, "");
            if (r_region_id == mregionid) {
                mregionexist = mregionid;
            }
            if (mregionexist != "0") { break; }
        }
    }
    return mregionexist;
}

//SPECIFIC YOURTOUR CONTENT
jQuery(document).ready(function() {

    // the usa maps will be automatically scrolled to bottom right to display Florida
    mapScrollVal = 'US';

});
