//======================================================
// Title : Javascript Functions
// Date : 6/5/2008 4:30PM
// Writer : Soona Eun
//======================================================



// function for AJAX call
// ===================================================================================================================
var httpRequest;

function CreateRequest() {
	try {
		httpRequest = new XMLHttpRequest();
	} 
	catch (trymicrosoft) {
		try {
	 		httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (othermicrosoft) {
	 		try {
	   		httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	 		} 
	 		catch (failed) {
	   		httpRequest = null;
	 		}
		}
	}
	if (httpRequest == null) {
		alert('Cannot creat an XMLHTTP instance');
		window.location.reload(); 
	}	
}
// end function for AJAX call
// ===================================================================================================================





// functions for getting subcategory
// ===================================================================================================================
function GoRetrieveSubCategory(strForm) {
    var strCategory = strForm.category.value;
    var strProcess = strForm.Process.value;
    var strDomainID = strForm.DomainID.value;
    
    if (strCategory != "") {
        CreateRequest();
        //Retrieve Option List
        var URL = "/common/getSelectedCategory.php?DomainID=" + strDomainID + "&Category=" + strCategory + "&Process=" + strProcess;
        
        httpRequest.onreadystatechange = function() {
            DisplaySubCategory(strForm);
        };
        httpRequest.open("GET", URL, true);
        httpRequest.send(null);
    }
    else {
        var strFormName = strForm.name;
        document.forms[strFormName].elements['subcategory'].length = 1;
        document.forms[strFormName].elements['subcategory'].options[0].value = "";
        document.forms[strFormName].elements['subcategory'].options[0].text = "SubCategory";
    }
}

function DisplaySubCategory(strForm) {
    if (httpRequest.readyState == 4) {	//it is okay to continue processing  	
        if (httpRequest.status == 200) {  	//Perfect

            var responseResult = httpRequest.responseText;
            responseResult = trim(responseResult);

            if (responseResult == "") {
                alert("No related subcategory was found.");
            }
            else {
                if (window.ActiveXObject) {
                    var doc = new ActiveXObject("Microsoft.XMLDOM");
                    doc.async = "false";
                    doc.loadXML(responseResult);
                }
                else { // code for Mozilla, Firefox, Opera, etc.
                    var parser = new DOMParser();
                    var doc = parser.parseFromString(responseResult, "text/xml");
                }

                strFormName = strForm.name;
                var strXml = doc.documentElement;
                var strArrayLength = strXml.getElementsByTagName('CategoryList').length;
                
                if (strArrayLength > 0) {
                    document.forms[strFormName].elements['subcategory'].length = strArrayLength + 1;

                    document.forms[strFormName].elements['subcategory'].options[0].value = "";
                    document.forms[strFormName].elements['subcategory'].options[0].text = "SubCategory";

                    for (var i = 0; i < strArrayLength; i++) {
                        var strTempCode = strXml.getElementsByTagName('CategoryCode')[i].firstChild.data;
                        var strTempName = strXml.getElementsByTagName('CategoryName')[i].firstChild.data;

                        document.forms[strFormName].elements['subcategory'].options[i + 1].value = strTempCode;
                        document.forms[strFormName].elements['subcategory'].options[i + 1].text = strTempName;
                    }
                }
            }
        }
        else {
            alert('There was a problem with the request.');
        }
    }
}

function GoRetrievePrice(strForm) {
    var strFormName = strForm.name;

    document.forms[strFormName].elements['price'].length = 6;
    document.forms[strFormName].elements['price'].options[0].text = 'Price';
    document.forms[strFormName].elements['price'].options[0].value = '';
    document.forms[strFormName].elements['price'].options[1].value = '1';
    document.forms[strFormName].elements['price'].options[1].text = '$0 ~ $50';
    document.forms[strFormName].elements['price'].options[2].value = '2';
    document.forms[strFormName].elements['price'].options[2].text = '$50 ~ $100';
    document.forms[strFormName].elements['price'].options[3].value = '3';
    document.forms[strFormName].elements['price'].options[3].text = '$100 ~ $200';
    document.forms[strFormName].elements['price'].options[4].value = '4';
    document.forms[strFormName].elements['price'].options[4].text = '$200 ~ $300';
    document.forms[strFormName].elements['price'].options[5].value = '5';
    document.forms[strFormName].elements['price'].options[5].text = 'Over $300';
}

function GoSearchbyCategory(strForm) {
    var strFormName = strForm.name;

    if (document.forms[strFormName].price.value != "") {
        document.forms[strFormName].submit();
    }
}
// ===================================================================================================================
// end functions for getting subcategory





// functions for search textbox styling
// ===================================================================================================================
function GoSearch(formElement) {
    if (formElement.value == 'SEARCH') {
        formElement.value = '';
    }
}
function GobacktoSearch(formElement) {
    if (formElement.value == '') {
        formElement.value = 'SEARCH';
    }
}
// ===================================================================================================================
// end functions for getting subcategory
