﻿// JScript File
function setinnertext1(id, text){
	document.getElementById(id).innerHTML=text;
}

function ischeck(id){
	if(document.getElementById(id).checked)
		return true;
	else
		return false;
}

function check(id){
	document.getElementById(id).checked=true;
}

function uncheck(id){
	document.getElementById(id).checked=false;
}

function getV(id){
 return document.getElementById(id).value;
}

function setinnertext2(id, id2){
	document.getElementById(id).innerHTML=document.getElementById(id2).innerHTML;
}

function r1(id){
    document.getElementById(id).style.backgroundColor = '#ffffff';
}

//change new Style Class
function change(id, newClass) {
    identity=document.getElementById(id);
    identity.className=newClass;
}

//open new window
function popUpContactus(){
  win = window.open('/contactus.aspx', 'propgo_contact' ,'width=580,height=675,directories=no,location=no,menubar=no,scrollbars=yes,status=yes,toolbar=no,resizable=no');
  return false;
}

//open new window
function popUpWin(urla,winName,w,h){
  win = window.open(urla, winName ,'width='+w+',height='+h+',directories=no,location=no,menubar=no,scrollbars=yes,status=yes,toolbar=no,resizable=no');
  return false;
}

function addToFavorites(url)
{
    var urlAddress = url; 
    var pageName = "PropGO – Find Your Dream Home Here "; 
    
    if (window.external) { 
        window.external.AddFavorite(urlAddress,pageName) 
    } else { 
        alert("Sorry! Your browser doesn't support this function."); 
    } 
}

function shiftOpacity(id, millisec) { 
    //if an element is invisible, make it visible, else make it ivisible 
    if(document.getElementById(id).style.filter == "alpha(opacity=0)") { 
       opacity(id, 0, 90, millisec); 
    } else { 
       opacity(id, 90, 0, millisec); 
    } 
} 

//fade in / out 
function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

function setHomagePage(obj, url)
{
    if (document.all){
      obj.style.behavior='url(#default#homepage)';obj.setHomePage(url);
    }
}

function MaxLength(txt,maxLen)
{
if(txt.value.length > (maxLen-1)) return false;
}

function ismaxlength(obj){
    var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : "";
    if (obj.getAttribute && obj.value.length>mlength)
    obj.value=obj.value.substring(0,mlength);
}

function NumCtl(i)
{   
    document.Num_return = true;
    if(!((i>=48&&i<=57)||(i>=96&&i<=105)||(i==8)||(i==9)||(i==46)||(i==37)||(i==38)||(i==39)||(i==40)))
        document.Num_return = false;
}

function MustNum(id)   
{   
    var val = document.getElementById(id).value;
    document.getElementById(id).value=val.replace(/[^\d]/g,'');
}   

function PopUpSendNoEvent(id)
{
    getPositionExactly(id,'400','600');
    document.getElementById(id).style.display ='block';
}

function EmailNoEvent(id)
{
    getPositionExactly(id,'400','280');
    document.getElementById(id).style.display ='block';
}

function MyListingPopUpSend(id)
{
    getPositionMyListing(event,id);
    document.getElementById(id).style.display ='block';
}

function PopUpSend(e,id){
    getCursorPos(e,id);
    document.getElementById(id).style.display ='block';
}

function PopUpSendAgent(e,id){
    getCursorPosAgent(e,id);
    document.getElementById(id).style.display ='block';
}

//get cursor point position
function getPositionExactly(objID, x, y) {
    document.getElementById(objID).style.left = x;
    document.getElementById(objID).style.top = y;
}

function shiftOpacity(id, millisec) {
    //if an element is invisible, make it visible, else make it ivisible
    if(document.getElementById(id).style.filter == "alpha(opacity=0)") {
       opacity(id, 0, 99, millisec);
    } else { 
       opacity(id, 99, 0, millisec);
    }
}

var x=0,y=0; 

//get cursor point position
function getCursorPosAgent(e, objID) {
    if (!e) e = event; // make sure we have a reference to the event 

    var mp = getMousePosition(e); 
    x=mp.x; 
    y=mp.y; 
    
    document.getElementById(objID).style.left = x-320;
    document.getElementById(objID).style.top = y-200;
}

//get cursor point position
function getCursorPos(e, objID) {
    if (!e) e = event; // make sure we have a reference to the event 

    var mp = getMousePosition(e); 
    x=mp.x; 
    y=mp.y; 
    
    document.getElementById(objID).style.left = 50+x;
    document.getElementById(objID).style.top = y-300;
}

function getMousePosition(e) 
{
    return e.pageX ? {'x':e.pageX, 'y':e.pageY} : {'x':e.clientX + document.documentElement.scrollLeft + document.body.scrollLeft, 'y':e.clientY + document.documentElement.scrollTop + document.body.scrollTop}; 
}

//get cursor point position
function getMouseCursor(e, objID) {
    e = e || window.event;
    
    var mp = getMousePosition(e); 
    x=mp.x; 
    y=mp.y; 
    
    document.getElementById(objID).style.left = x;
    document.getElementById(objID).style.top = y;
}

//get cursor point position
function getPositionMyListing(e, objID) {
    e = e || window.event;
    var mp = getMousePosition(e); 
    x=mp.x; 
    y=mp.y; 
    
    document.getElementById(objID).style.left = 180;
    document.getElementById(objID).style.top = y-510;
}

function AppearPopUp(e, id, x)
{
    e = e || window.event;
    getMPosition(e,id, x);
    document.getElementById(id).style.display='block';
    document.getElementById(id).style.filter='alpha(opacity=0)';
    shiftOpacity(id, 800);
}

//get cursor point position
function getMPosition(e, objID, _left) {
    e = e || window.event;
    var mp = getMousePosition(e); 
    x=mp.x; 
    y=mp.y; 
    
    document.getElementById(objID).style.left = _left;
    document.getElementById(objID).style.top = y-130;
}

//fade in / out 
function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var ePosL = 0;
    var ePosT = 0;
    var object = document.getElementById(id).style;
    //ePos = ; 
    ePosL = parseInt(object.left,10);
    //ePosT = parseInt(object.top,10);
    
    //object.opacity = (opacity / 100); 
    //object.MozOpacity = (opacity / 100); 
    //object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
    object.left = ePosL + 1;
    //object.top = ePosT - 1;
}

//Ajax Control
//For insert data
function insertData(myurl, tag, lang) {
    tagname = "";
    slang = "";
    http = createRequestObject(); 
    //var myurl = "main/php/registrator.php?";

    http.open("GET", myurl, true);
    tagname =tag;
    slang = lang
    http.onreadystatechange = useHttpResponseSaved;
    http.send(null);
        
}

function createRequestObject(){ 
   var request_o; //declare the variable to hold the object. 
   var browser = navigator.appName; //find the browser name 
   if(browser == 'Microsoft Internet Explorer') 
   { 
	/* Create the object using MSIE's method */ 
	request_o = new ActiveXObject('Microsoft.XMLHTTP'); 
   }else{ 
	/* Create the object using other browser's method */ 
	request_o = new XMLHttpRequest(); 
   } 
   return request_o; //return the object 
}


function useHttpResponseSaved() {
	var textout="";
	
    if (http.readyState == 4 && http.status == 200) {
        if (slang == 'zh-cn')
        {
	        setTimeout('document.getElementById(tagname).innerHTML = "已被储存!"', 1000);
            window.status = '储存!';
        }
        else if (slang == 'zh-hk')
        {
	        setTimeout('document.getElementById(tagname).innerHTML = "已被儲存!"', 1000);
            window.status = '儲存!';
        }
        else 
        {
        	setTimeout('document.getElementById(tagname).innerHTML = "Saved!"', 1000);
            window.status = 'Saved!';
        }
    }
}

function recoverBG(id, starid)
{
    document.getElementById(id).style.backgroundColor = '#ffffff';
    document.getElementById(starid).style.color = 'white';
    document.getElementById(id).title = "";
    
    document.PG_returnValue = true;
}

function changeBG(id, lblid, messid, starid)
{
    var lbl = document.getElementById(lblid).innerHTML +" "+ document.getElementById(messid).innerHTML;
    if ( document.getElementById(id).value == "")
    {
        document.getElementById(id).style.backgroundColor = '#ff3333';
        document.getElementById(starid).style.color = 'red';
        document.getElementById(id).title = lbl;
        document.PG_returnValue = false;
    }
}

function EchangeBG(id, lblid, messid, starid )
{   var val = document.getElementById(id).value;
    var lbl = document.getElementById(lblid).innerHTML +" "+ document.getElementById(messid).innerHTML;
    var rx = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");

    if(!rx.test(val))
    {
        document.getElementById(id).style.backgroundColor = '#ff3333';
        document.getElementById(starid).style.color = 'red';
        document.getElementById(id).title = lbl;
        document.PG_returnValue = false;
    }
}

function closeWin(id)
{
    document.getElementById(id).style.display ='none';
}

function MaxLength(txt,maxLen)
{
    if(txt.value.length > (maxLen-1)) return false;
}

function SchangeBG(id, lblid, messid, starid)
{
    var lbl = document.getElementById(lblid).innerHTML +" "+ document.getElementById(messid).innerHTML;
    if ( document.getElementById(id).selectedIndex == 0)
    {
        document.getElementById(id).style.backgroundColor = '#ff3333';
        document.getElementById(starid).style.color = 'red';
        document.getElementById(id).title = lbl;
        document.PG_returnValue = false;
    }
    else
    {
        recoverBG(id, starid);
    }
}

//Price Masking
function priceMask(maskid, realid, num1) {
    var Num = num1;
    var newNum = "";
    var newNum2 = "";
    var count = 0;
        
    Num = Num.replace(/,/g,"");
    //Num = Num.replace(/./,"");
    //check for decimal number

    //this loop actually adds the commas   
    for (var k = Num.length-1; k >= 0; k--){
      var oneChar = Num.charAt(k);
      if (count == 3){
        newNum += ",";
        newNum += oneChar;
        count = 1;
        continue;
      }
      else {
        newNum += oneChar;
        count ++;
      }
   }  //but now the string is reversed!
   
  //re-reverse the string
  for (var k = newNum.length-1; k >= 0; k--){
      var oneChar = newNum.charAt(k);
      newNum2 += oneChar;
  }
   document.getElementById(maskid).value =newNum2;
   document.getElementById(realid).value = newNum2.replace(/,/g,"");
}

//Price Masking
function priceMask2(maskid) {
    var Num;
    var newNum = "";
    var newNum2 = "";
    var count = 0;
    
    Num = document.getElementById(maskid).value;
    
    Num = Num.replace(/,/g,"");
    //Num = Num.replace(/./,"");
    //check for decimal number

    //this loop actually adds the commas   
    for (var k = Num.length-1; k >= 0; k--){
      var oneChar = Num.charAt(k);
      if (count == 3){
        newNum += ",";
        newNum += oneChar;
        count = 1;
        continue;
      }
      else {
        newNum += oneChar;
        count ++;
      }
   }  //but now the string is reversed!
   
  //re-reverse the string
  for (var k = newNum.length-1; k >= 0; k--){
      var oneChar = newNum.charAt(k);
      newNum2 += oneChar;
  }

  var i = event.keyCode;
  if(!( (i==37) || (i==39) || (i==9) || (i==46) ) )
    document.getElementById(maskid).value =newNum2;
}

//hideit()
function justhide(id){
   document.getElementById(id).style.display = "none";
}

//showit2()
function justshow(id){
   document.getElementById(id).style.display = "block";
}

function show_it(r1, r2, n){
	var n;
    if(n == 0){
	    document.getElementById(r1).style.display = "";
	    document.getElementById(r2).style.display = "none";
    }else{
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "";
    }
}

//showit4()
function show_it3(r1, r2, r3, n){
	var n;
    if(n == 0){
	    document.getElementById(r1).style.display = "block";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "none";
    }else if(n==1){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "block";
	    document.getElementById(r3).style.display = "none";
    }else if(n==2){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "block";
    }
}

//showit4()
function show_it4(r1, r2, r3, r4, n){
	var n;
    if(n == 0){
	    document.getElementById(r1).style.display = "block";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "none";
    }else if(n==1){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "block";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "none";
    }else if(n==2){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "block";
	    document.getElementById(r4).style.display = "none";
    }else{
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "block";
    }
}


//showit5()
function show_it5(r1, r2, r3, r4, r5, n){
	var n;
    if(n == 0){
	    document.getElementById(r1).style.display = "block";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "none";
	    document.getElementById(r5).style.display = "none"; 
    }else if(n==1){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "block";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "none";
	    document.getElementById(r5).style.display = "none"; 
    }else if(n==2){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "block";
	    document.getElementById(r4).style.display = "none";
	    document.getElementById(r5).style.display = "none";
    }else if(n==3){
	    document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "block";
	    document.getElementById(r5).style.display = "none";
    }else{
    	document.getElementById(r1).style.display = "none";
	    document.getElementById(r2).style.display = "none";
	    document.getElementById(r3).style.display = "none";
	    document.getElementById(r4).style.display = "none";
	    document.getElementById(r5).style.display = "block";
    }
}

function searchclick(id, strVal)
{
    document.PG_returnValue = true;
    if (document.getElementById(id).value == document.getElementById(strVal).innerHTML)
    {
         document.getElementById('showErrorMessage').style.display ='block';
         document.getElementById('errorMessage').innerHTML = '<img src=images/alert.gif /> <b>'+document.getElementById(strVal).innerHTML+"!</b>"; 
         document.PG_returnValue = false;
    }
}

//Price Masking
function priceMask(maskid, realid, num1) {
    var Num = num1;
    var newNum = "";
    var newNum2 = "";
    var count = 0;
        
    Num = Num.replace(/,/g,"");
    //Num = Num.replace(/./,"");
    //check for decimal number

    //this loop actually adds the commas   
    for (var k = Num.length-1; k >= 0; k--){
      var oneChar = Num.charAt(k);
      if (count == 3){
        newNum += ",";
        newNum += oneChar;
        count = 1;
        continue;
      }
      else {
        newNum += oneChar;
        count ++;
      }
   }  //but now the string is reversed!
   
  //re-reverse the string
  for (var k = newNum.length-1; k >= 0; k--){
      var oneChar = newNum.charAt(k);
      newNum2 += oneChar;
  }
   document.getElementById(maskid).value =newNum2;
   document.getElementById(realid).value = newNum2.replace(/,/g,"");
}

//Price Masking
function priceMask2(maskid) {
    var Num;
    var newNum = "";
    var newNum2 = "";
    var count = 0;
    
    Num = document.getElementById(maskid).value;
    
    Num = Num.replace(/,/g,"");
    //Num = Num.replace(/./,"");
    //check for decimal number

    //this loop actually adds the commas   
    for (var k = Num.length-1; k >= 0; k--){
      var oneChar = Num.charAt(k);
      if (count == 3){
        newNum += ",";
        newNum += oneChar;
        count = 1;
        continue;
      }
      else {
        newNum += oneChar;
        count ++;
      }
   }  //but now the string is reversed!
   
  //re-reverse the string
  for (var k = newNum.length-1; k >= 0; k--){
      var oneChar = newNum.charAt(k);
      newNum2 += oneChar;
  }
  
  var i = event.keyCode;
  if(!( (i==37) || (i==39) || (i==9) || (i==46) ))
    document.getElementById(maskid).value =newNum2;
}

//Price Masking
function priceMaskRemember(maskid) {
    var Num;
    var newNum = "";
    var newNum2 = "";
    var count = 0;
    
    Num = document.getElementById(maskid).value;
    
    Num = Num.replace(/,/g,"");
    //Num = Num.replace(/./,"");
    //check for decimal number

    //this loop actually adds the commas   
    for (var k = Num.length-1; k >= 0; k--){
      var oneChar = Num.charAt(k);
      if (count == 3){
        newNum += ",";
        newNum += oneChar;
        count = 1;
        continue;
      }
      else {
        newNum += oneChar;
        count ++;
      }
   }  //but now the string is reversed!
   
  //re-reverse the string
  for (var k = newNum.length-1; k >= 0; k--){
      var oneChar = newNum.charAt(k);
      newNum2 += oneChar;
  }

    document.getElementById(maskid).value =newNum2;
}

function UpDownOne(id, keyCode)
{   
       
    var n = parseInt(document.getElementById(id).value);

    if(keyCode == 38)
        document.getElementById(id).value = n + 1;
    else if(keyCode == 40 && n >1)
        document.getElementById(id).value = n - 1;
}

function NumDotCtl(i)
{   
    document.NumDot_return = true;
    if(!((i>=48&&i<=57)||(i>=96&&i<=105)||(i==8)||(i==9)||(i==190)||(i==110)||(i==46)||(i==37)||(i==38)||(i==39)||(i==40)))
        document.NumDot_return = false;
}

function NumCtl(i)
{   
    document.Num_return = true;
    if(!((i>=48&&i<=57)||(i>=96&&i<=105)||(i==8)||(i==9)||(i==46)||(i==37)||(i==38)||(i==39)||(i==40)))
        document.Num_return = false;
}

function searchMk(id, strVal)
{
    if (document.getElementById(id).value == document.getElementById(strVal).innerHTML)
    {
        document.getElementById(id).value =  '';
        document.getElementById(id).style.color = '#000000';
    }

}

function loadMk(id, strVal)
{   
    var temp;
    var sc = document.getElementById(strVal).innerHTML;
   

    if (document.getElementById(id).value == '' || document.getElementById(id).value == sc)
    {
        for(var i=1 ; i< sc.length; i++ )
        {
            temp =sc.substring(0, i+1);
            setTimeout("document.getElementById('"+id+"').value='"+temp+"'", (i-1)*16);
            document.getElementById(id).style.color = '#c2c3c3';
        }

        document.getElementById(id).style.color = '#c2c3c3';
    }

}


// ******************* validation check start *******************
function PG_findObj(n, d) { 
  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=PG_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) 
    x=d.getElementById(n); 
  
  return x;
}



// ******************* validation check end *******************

// ******************* EN start *******************

function PG_validateCheck_1() { 
  var i, p, q, nm, test, num, min, max, errors = "";
  var args = PG_validateCheck_1.arguments;
  
  for (i=0; i<(args.length-2); i+=3) {
    test=args[i+2];
    descID =  PG_findObj(args[i+1]);
    val = PG_findObj(args[i]);
    if (val) 
    { 	
        nm= "<b style='color:red'>" + descID.innerHTML+ "</b>" ;//val.name; 
        if ((val=val.value)!="") 
        {
	        if (test.indexOf('isEmail')!=-1) 
	        { 
	            var rx = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");
	            if(!rx.test(val))
		            errors+='- '+nm+' is not an e-mail address format!<br/>';
		            
	        } // end if (test.indexOf('isEmail')!=-1) 
	        
            else if (test.indexOf('isCheck')!=-1)
            {
                if((PG_findObj(args[i])).checked==false)
                {
                    errors+='- '+nm+' must be checked.<br/>';
                }
            } // end if (test.indexOf('isCheck')!=-1)
            
            else if (test.indexOf('isSelect')!=-1)
            {
                if((PG_findObj(args[i])).selectedIndex/1==0)
                {
                     errors+='- '+nm+' must be selected.<br/>';
                }
            } //end if (test.indexOf('isSelect')!=-1)
	        
	        else if (test!='R') 
	        { 
		        num = parseFloat(val);

		        if ( isNaN(val) ) 
		        {    
		            errors+='- '+nm+' is not a numerical format! eg. 23583224<br/>';
		        }
		            
		        if (test.indexOf('inRange') != -1) 
		        { 
		            p=test.indexOf(':');
			        min=test.substring(8,p); 
			        max=test.substring(p+1);
			        
				    if (num<min || max<num) 
					    errors+='- '+nm+' must contain a number between ' + min + ' and ' + max + '.<br/>';
		        }// end if (test.indexOf('inRange') != -1) 
		        
	        } // end  if (test!='R')
	        
	         
        } // end if ((val=val.value)!="") 
        else if (test.charAt(0) == 'R') 
        {
            errors += '- '+nm+' is required.<br/>'; 
        }// end if (test.charAt(0) == 'R')

     }// end if (val) 
  } // end for loop
   
  if (!errors == "") 
  {
     document.getElementById('showErrorMessage').style.display ='block';
     document.getElementById('showErrorMessage').style.display ='block';       
     document.getElementById('errorMessage').innerHTML = '<img src=/images/alert.gif /> The following error(s) occurred:<br/>'+errors; 
  }// end if (errors) 
  
  document.PG_returnValue = (errors == '');
  
}
// ******************* EN end *******************


// ******************* TC start *******************
function PG_validateCheck_2() { 
  var i, p, q, nm, test, num, min, max, errors = "";
  var args = PG_validateCheck_2.arguments;
  
  for (i=0; i<(args.length-2); i+=3) {
    test=args[i+2];
    descID =  PG_findObj(args[i+1]);
    val = PG_findObj(args[i]);
    
    //testing propose
    //errors+="<b style='color:blue'><<<"+val.innerHTML +">>>("+test+")("+test.indexOf('isSelect')+")<br/></b>";
     
    if (val) 
    { 	
        nm= "<b style='color:red'>" + descID.innerHTML+ "</b>" ;//val.name; 
        if ((val=val.value)!="") 
        {
	        if (test.indexOf('isEmail')!=-1) 
	        { 
	            var rx = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");
	            if(!rx.test(val))
		            errors+='- '+nm+'不合符電郵地址格式!<br/>';
		            
	        } // end if (test.indexOf('isEmail')!=-1) 
	        
            else if (test.indexOf('isCheck')!=-1)
            {
                if((PG_findObj(args[i])).checked==false)
                {
                    errors+='- '+nm+'是必須選擇!<br/>';
                }
            } // end if (test.indexOf('isCheck')!=-1)
            
            else if (test.indexOf('isSelect')!=-1)
            {
                if((PG_findObj(args[i])).selectedIndex/1==0)
                {
                     errors+='- '+nm+'是必須選擇!<br/>';
                }
            } //end if (test.indexOf('isSelect')!=-1)
	        
	        else if (test!='R') 
	        { 
		        num = parseFloat(val);

		        if ( isNaN(val) ) 
		        {    
		            errors+='- '+nm+'不合符數字格式 例: 23583224<br/>';
		        }
		            
		        if (test.indexOf('inRange') != -1) 
		        { 
		            p=test.indexOf(':');
			        min=test.substring(8,p); 
			        max=test.substring(p+1);
			        
				    if (num<min || max<num) 
					    errors+='- '+nm+' must contain a number between ' + min + ' and ' + max + '.<br/>';
		        }// end if (test.indexOf('inRange') != -1) 
		        
	        } // end  if (test!='R')	       
	         
        } // end if ((val=val.value)!="") 
        else if (test.charAt(0) == 'R') 
        {
            errors += '- '+nm+'是必須輸入!<br/>'; 
        }// end if (test.charAt(0) == 'R')

     }// end if (val) 
  } // end for loop
   
  if (!errors == "") 
  {
     document.getElementById('showErrorMessage').style.display ='block';
     document.getElementById('showErrorMessage').style.display ='block';       
     document.getElementById('errorMessage').innerHTML = '<img src=/images/alert.gif /> 請留意以下項目:<br/>'+errors; 
  }// end if (errors) 
  
  document.PG_returnValue = (errors == '');
  
}
// ******************* TC end *******************


// ******************* SC start *******************
function PG_validateCheck_3() { 
  var i, p, q, nm, test, num, min, max, errors = "";
  var args = PG_validateCheck_3.arguments;
  
  for (i=0; i<(args.length-2); i+=3) {
    test=args[i+2];
    descID =  PG_findObj(args[i+1]);
    val = PG_findObj(args[i]);
    if (val) 
    { 	
        nm= "<b style='color:red'>" + descID.innerHTML+ "</b>" ;//val.name; 
        if ((val=val.value)!="") 
        {
	        if (test.indexOf('isEmail')!=-1) 
	        { 
	            var rx = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");
	            if(!rx.test(val))
		            errors+='- '+nm+'不合符电邮地址格式!<br/>';
		            
	        } // end if (test.indexOf('isEmail')!=-1) 
	        
            else if (test.indexOf('isCheck')!=-1)
            {
                if((PG_findObj(args[i])).checked==false)
                {
                    errors+='- '+nm+'是必须选择!<br/>';
                }
            } // end if (test.indexOf('isCheck')!=-1)
            
            else if (test.indexOf('isSelect')!=-1)
            {
                if((PG_findObj(args[i])).selectedIndex/1==0)
                {
                     errors+='- '+nm+'是必须选择!<br/>';
                }
            } //end if (test.indexOf('isSelect')!=-1)
	        
	        else if (test!='R') 
	        { 
		        num = parseFloat(val);

		        if ( isNaN(val) ) 
		        {    
		            errors+='- '+nm+'不合符数字格式! 例: 23583224<br/>';
		        }
		            
		        if (test.indexOf('inRange') != -1) 
		        { 
		            p=test.indexOf(':');
			        min=test.substring(8,p); 
			        max=test.substring(p+1);
			        
				    if (num<min || max<num) 
					    errors+='- '+nm+' must contain a number between ' + min + ' and ' + max + '.<br/>';
		        }// end if (test.indexOf('inRange') != -1) 
		        
	        } // end  if (test!='R')
	        
	         
        } // end if ((val=val.value)!="") 
        else if (test.charAt(0) == 'R') 
        {
            errors += '- '+nm+'是必须输入!<br/>'; 
        }// end if (test.charAt(0) == 'R')

     }// end if (val) 
  } // end for loop
   
  if (!errors == "") 
  {
     document.getElementById('showErrorMessage').style.display ='block';
     document.getElementById('showErrorMessage').style.display ='block';       
     document.getElementById('errorMessage').innerHTML = '<img src=/images/alert.gif /> 请留意以下项目:<br/>'+errors; 
  }// end if (errors) 
  
  document.PG_returnValue = (errors == '');
  
}
// ******************* SC end *******************

function NumMask(maskid, num1, sign) {
    var Num = "";
    var newNum = "";
    var newNum2 = "";
    var count = 0;
    var end="";
    Num = num1.toString();
    
    //check for decimal number
   if (Num.indexOf('.') != -1){  //number ends with a decimal point
        if (Num.indexOf('.') == Num.length-1){
            Num += "00";
        }
        if (Num.indexOf('.') == Num.length-2){ //number ends with a single digit
            Num += "0";
        }
        var a = Num.split("."); 
        Num = a[0];   //the part we will commify
        end = "."+a[1].substring(0,2) //the decimal place we will ignore and add back later
    }

    //this loop actually adds the commas   
    for (var k = Num.length-1; k >= 0; k--){
      var oneChar = Num.charAt(k);
      if (count == 3){
        newNum += ",";
        newNum += oneChar;
        count = 1;
        continue;
      }
      else {
        newNum += oneChar;
        count ++;
      }
   }  //but now the string is reversed!
   
  //re-reverse the string
  for (var k = newNum.length-1; k >= 0; k--){
      var oneChar = newNum.charAt(k);
      newNum2 += oneChar;
  }
   
   document.getElementById(maskid).innerHTML = sign +newNum2 + end;
}

function Querystring(qs) {
	this.params = new Object()
	this.get=Querystring_get
	
	if (qs == null)
		qs=location.search.substring(1,location.search.length)

	if (qs.length == 0) return

	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&')
	
	for (var i=0;i<args.length;i++) {
		var value;
		var pair = args[i].split('=')
		var name = unescape(pair[0])

		if (pair.length == 2)
			value = unescape(pair[1])
		else
			value = name
		
		this.params[name] = value
	}
}

function Querystring_get(key, default_) {
	if (default_ == null) default_ = null;
	
	var value=this.params[key]
	if (value==null) value=default_;
	
	return value
}


 function changeActive(c1,c2,c3)
 {
    document.getElementById("lblmapview").style.color = c1;
    document.getElementById("lblsceneview").style.color = c2;
    document.getElementById("lblterrainview").style.color = c3;
 }
 
 
 
function MessageCBG(id, mess)
{
	document.getElementById(id).style.backgroundColor = '#d7d7d7';
    if ( document.getElementById(id).value == "")
    {
        document.getElementById(id).style.backgroundColor = '#ff3333';
		alert(mess);
       return false;
    }
    else
       return true;
}

function MessageECBG(id, mess)
{   
	document.getElementById(id).style.backgroundColor = '#d7d7d7';
	var val = document.getElementById(id).value;
    var rx = new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");

    if(!rx.test(val))
    {
        document.getElementById(id).style.backgroundColor = '#ff3333';
		alert(mess);
        return false;
    }
    else
        return true;
}