// GenericHTMLObjOrganizationFunc.js

/*建構一個HTML select Tag object的內容選項*/
//selectObject:要填值的select object
//optionList: selectObject 要秀出的值
//hasOtherOption:要有其他"的字眼
//hasSelectOption: 要有"請選擇"的字眼
//selectStr: 可供第一個選項的字眼


//document.body.addEventListener("contextmenu",killClick, true);
//window.oncontextmenu = function () { return false; };
function BuildFixedSelectOptions(selectObject, optionList, hasOtherOption, hasSelectOption, selectStr){
//	selectObject.selectedIndex=0;
	var k = 0;
	var	selectLiteral = selectStr;	
    if(hasSelectOption){
    	k = 1;
		if(selectStr == ""  || selectStr == null){
			selectLiteral = "請選擇";			
		}
		selectObject.options[0]=new Option(selectLiteral,"");  
    }

	var l = 0;    
   	if(hasOtherOption){
   		l = l +1;
   		selectObject.options[l]=new Option("其他");		
   		selectObject.options[l].value = "其他";		
   	}
   	for (i=l;i < optionList.length+l;i++){
   		selectObject.options[i+k]= new Option(optionList[i]);	
   		selectObject.options[i+k].value=optionList[i];
   	} 
   	
	selectObject.length=i+k;
	if(selectObject.length > 0){
		selectObject.options[0].selected=true;
	}
}


//AJAX functions

function GetXmlHttpObject()
{ 
	var objXMLHttp=null;
	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}

	return objXMLHttp;
}


function loadJsComponent(src){
	  //Create a 'script' element	
	  var scrptE = document.createElement("script");

	  // Set it's 'type' attribute	
	  scrptE.type= "text/javascript";

	  // Set it's 'src' attribute
	  scrptE.src= src + "?"+ Math.random;

	  // Now add this new element to the head tag
	  document.body.appendChild(scrptE);

}

function launchAnEvent(target, kind){
	if(navigator.appName == 'Netscape'){
		var   e = null;
		if(kind != "click"){
		  e =   document.createEvent('HTMLEvents');  
		}else{
			e =   document.createEvent('MouseEvent');
		}
		e.initEvent(kind,true,true);   
		target.dispatchEvent(e);   
	}else{
		if(kind == "click"){
			target.click();
		}else if(kind == "change"){
			target.onchange();
		}
	}	
}


/*建構年份 for HTML Select Object*/
function BuildItemsForYear(SelectObject, initialYear, endYear) {
		SelectObject.selectedIndex=0;
		SelectObject.options[0]=new Option("請選擇...","");    
		for(i=0;i<=(endYear-initialYear);i++){	
			SelectObject.options[i+1]=new Option(initialYear + i); 
	 		SelectObject.options[i+1].value = initialYear + i;
	 	}
}

/* checkPosition */
function checkSelectedObjectPosition(inputStr, selectObject){
	for (i=0;i < selectObject.length;i++)
	{
			if (selectObject.options[i].value == inputStr ){
				selectObject.options[i].selected=true;
				break;
			}
			
	}
}

/* for control DIV tag Display 單一個div */
function controlDisplayForDIVObject(divObj, needDisplay){
	if(needDisplay == null){
	  divObj.style.display = "";	
	}else if(needDisplay){
	  divObj.style.display = "block";	
	}else{
	  divObj.style.display = "none";
	}
}

/* for control DIV tag Display 多組div */
function ChangeDivsDisplayOption(divObjNameList, needDisplayList, needDisplay){	
	if(needDisplayList != null){
		for(i=0;i < divObjNameList.length;i++){
			controlDisplayForDIVObject(document.getElementById(divObjNameList[i]),needDisplayList[i]);
		}	
	}else{
		for(i=0;i < divObjNameList.length;i++){
			controlDisplayForDIVObject(document.getElementById(divObjNameList[i]),needDisplay);
		}
	}	
}

/* Toggle to show or not to show an object*/
function toggleToShowOrNotToShow(tagObj){
	if(tagObj.style.display == "block"){
		tagObj.style.display = "none";
	}else{
		tagObj.style.display = "block";
	}
}

/* check browser */
function isNetscapeOrFireFox(){
	if(navigator.appName == 'Netscape'){
		return true;
	}else{
		return false;
	}
}

function isIE(){
	
	if(navigator.appName == 'Microsoft Internet Explorer'){
		return true;
	}else{
		return false;
	}
}

/* 
 * Function to return the message 早安 午安 晚安 based on current time
 */

function getGreeting() {

	var now = new Date();
	var hour = now.getHours();
	var minute = now.getMinutes();

	var hrmin = hour * 100 + minute;

	// 4:00am - 12:00pm = morning
	var greeting = "早安";

	// 6:00PM - 4:00AM = night
	if (hrmin >= 1800 || hrmin <= 400) {
	  greeting = "晚安";
	}

	// 12:00pm - 6:00pm = afternoon
	if (hrmin >= 1200 && hrmin < 1800) {
	  greeting = "午安";
	}
	return greeting;
}

/*sequential rotate child element, param1: theParentElement, param1: time of rotate*/
function rotateChildElements(arguments){	
	var args = rotateChildElements.arguments;
	var children = args[0].childNodes; 
	var	index = 0;
	if(args.length > 2){
			try{
				controlDisplayForDIVObject(children[args[2]], false);	
			}catch(e){
				// the element of first element may be a  #text element.
			}
			index = args[2] + 1;
			if(index >= children.length)
				index = 0;
			while(children[index].nodeName == "#text" ){
				index++;
				if(index >= children.length){
					index = 0;
				}
			}
			controlDisplayForDIVObject(children[index], true);	
	}else 
		for(var i=0;i < children.length;i++)
			if(children[i].nodeName != "#text"){
						controlDisplayForDIVObject(children[i], false);
			}
	if(isIE())
		controlDisplayForDIVObject(children[index], true);
	setTimeout(function(){rotateChildElements(args[0], args[1], index);}, args[1]);
}

function isNumberInputed(theInput, showAlert, doClear){
	if(isNaN(theInput.value)){
		if(showAlert){
			alert("您輸入:《" + theInput.value + "》，但這個欄位的值必須是數字!請重填");
		}
		if(doClear){
			theInput.value ="";
		}
		return false;
	}else{
		return true;
	}
}

function initalizeIdealHome_Utility(){
 	return new IdealHome_Utility();
}

/* Start, Idealhome Utilities*/
function IdealHome_Utility(){
}

/*sleep for specified milli-second */
IdealHome_Utility.prototype.delay = function(millis){
	var date = new Date();
	var curDate = null;	
	do { curDate = new Date(); } 
	while(curDate-date < millis);
} 

/*show mark in a map, this verion is only for google map */
IdealHome_Utility.prototype.showMarkerInAMap = function(address, mapContainer, mapLevel, func, mapProvider){
	theGMap = initalizeGoogleMap(mapContainer);
  	theGMap.currentMapLevel= mapLevel;  	
  	if( func != null){
  		theGMap.afterAsynRequestDone = func;
  	} else{
	  	theGMap.afterAsynRequestDone = function(boolresult){
			// do nothing;
  		}  		
  	}  	
	theGMap.showLocation(address);
} 
IdealHome_Utility.prototype.delay = function (millis){
	var date = new Date();
	var curDate = null;	
	do { curDate = new Date(); } 
	while(curDate-date < millis);
}

/* Toggle to show or not to show an object*/
IdealHome_Utility.prototype.toggleToShowOrNotToShow = function(tagObj){
	if(tagObj.style.display == "block"){
		tagObj.style.display = "none";
	}else{
		tagObj.style.display = "block";
	}
}

/* Toggle to show or not to show an object, for anchor*/
IdealHome_Utility.prototype.toggleToShowOrNotToShow = function(tagObj, linker, text1, text2){
	if(linker.innerHTML == text1){
		linker.innerHTML = text2;
	}else{
		linker.innerHTML = text1;
	}
	if(tagObj.style.display == "block"){
		tagObj.style.display = "none";
	}else{
		tagObj.style.display = "block";
	}
}

/* show tag Obj single tag object */
IdealHome_Utility.prototype.showTagObject = function(obj, needDisplay){
	if(needDisplay == null){
	  obj.style.display = "";	
	}else if(needDisplay){
	  obj.style.display = "block";	
	}else{
	  obj.style.display = "none";
	}
}



