
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

var contactUs = function () {
	var list = contactUsList;
	var business;
	var countries;
	var businessList = new Array ();
	var errorEl;
	

	function query (o, key) {
		return o[key];
	}

	function populateData () {
		removeCountry();
		for(var x in list){
			businessList.push(x);
		}

		for(var z=0; z<businessList.length; z++){
			var opt = document.createElement('<option value="' + businessList[z] + '"></option>');
			opt.innerHTML = businessList[z];
			business.appendChild(opt);
		}

	}

	function populateCountry (e) {
		if (!e)
			var e = window.event;
		if (e.target) {
			targ = e.target;
		} else if (e.srcElement) {
			targ = e.srcElement;
		}
		if (targ.nodeType == 3) // defeat Safari bug
			targ = targ.parentNode;
		el = targ;
		var elm = el.options[el.selectedIndex].value;
		var countryList = new Array();
		removeCountry();
		if(elm == '0'){
			removeCountry();
		}else{
			var regions = list[elm];
			for(var s in regions){
				var items = regions[s];
				for(var t=0; t<items.length; t++){
					if(items[t].phone != '' || items[t].email != ''){
						countryList.push(items[t].country);
					}
				}
			}
		}

		/*countryList.sort();
		for(var i=0; i<countryList.length; i++){
			var opt = document.createElement('<option value="' + countryList[i] + '"></option>');
			opt.innerHTML = countryList[i];
			countries.appendChild(opt);
		}*/
		contactUsCountries.sort();
		for(var i=0; i<contactUsCountries.length; i++){
			var isAdded = false;
			for(var z=0; z<countryList.length; z++){
				if(countryList[z].indexOf(contactUsCountries[i]) != -1){
					if(isAdded == false){
						var opt = document.createElement('<option value="' + contactUsCountries[i] + '"></option>');
						opt.innerHTML = contactUsCountries[i];
						countries.appendChild(opt);
						isAdded = true;
					}
				}
			}

		}

	}


	function removeCountry () {
		if(countries.hasChildNodes()){
			countries.innerHTML = '';
		}
		var opt = document.createElement('<option value="0" selected="selected"></option>');
		opt.innerHTML = 'Select a country';
		countries.appendChild(opt);
	}

	function getResult () {
		var error = 'Please select ';
		var valid = true;
		var businessValue = business.options[business.selectedIndex].value;
		var countryValue = countries.options[countries.selectedIndex].value;

		if(businessValue == 0){
			error += 'business';
			valid = false;
		}

		if(countryValue == 0){
			if(error != 'Please select ') error += ' and ';
			error += 'country';
			valid = false;
		}

		if(valid == true){
			var resultObj = new Array();
			var blist = list[businessValue];
			for(var i in blist){
				for(var x=0; x<blist[i].length; x++){
					if(blist[i][x].country.indexOf(countryValue) != -1){
						//alert(countryValue + ' - ' + blist[i][x].country);
						resultObj.push(blist[i][x]);
					}
				}
			}
			showResult(businessValue, resultObj);
		}else{
			errorEl.innerHTML = error;
		}
	}

	function resetData () {
		errorEl.innerHTML = '';
		//removeCountry();
		//business.selectedIndex = 0;
		removeResult();
	}

	function removeResult () {
		var tbody = document.getElementById('resultTbody');
		var result = document.getElementById('contactUsResult');
		var important = document.getElementById('contactUs3');
		while(tbody.hasChildNodes()){
			tbody.removeChild(tbody.lastChild);
		}
		hideEl(result);
		hideEl(important);
	}

	function showResult (v, o) {	
		resetData();
		var re1='([\\w-+]+(?:\\.[\\w-+]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7})';	// Email Address 1
      	var p = new RegExp(re1,["i"]);
		var table = document.getElementById('contactUsResult');
		var caption=document.getElementById('cp');
		var tbody = document.getElementById('resultTbody');
		var result = document.getElementById('contactUsResult');
		var important = document.getElementById('contactUs3');
		var selection = document.getElementById('contactUs2');
		//hideEl(selection);
		showEl(important);
		showEl(result);

				//var caption = document.createElement('caption');
				//var cap= v + ' - ' +country; 
				
				//tdBusiness.style.width = '30%';
				/*table.removeChild(cp);
				table.appendChild(caption);	
				caption.setAttribute('id', 'cp');*/

		for(var i=0; i<o.length; i++){
			if(o[i].email != '' || o[i].phone != ''){
				var tr = document.createElement('tr');
				tr.className = 'evenrow';
				
					var tdEmail = document.createElement('td');
				var m = p.exec(o[i].email);
				



				if (m != null){
					
					var feedbackEl = document.createElement('a');
					var feedbackUrl = "/solutions" + "/features" + "/common" + "/feedback" + "/feedback.html?contact_card_id=" + o[i].contact_id + "&amp;contact_name=Customer%20Support";
					feedbackEl.style.width = '25%';		
					feedbackEl.onclick = function () {
						window.open(feedbackUrl, '_blank', 'status=yes,location=no,menubar=no,resizable=yes,scrollbars=yes,toolbar=no,width=530,height=620');
						return false;
					}
					feedbackEl.setAttribute('href','javascript: void(0)');
					feedbackEl.setAttribute('target','_blank');
					feedbackEl.setAttribute('title', 'Click here to e-mail us');
					feedbackEl.innerHTML = 'Customer Support';
					
					tdEmail.appendChild(feedbackEl);
				}else{
					tdEmail.innerHTML = o[i].email;
				}
				tr.appendChild(tdEmail);	
				
				var tdPhone = document.createElement('td');
				tdPhone.style.width = '20%';
				tdPhone.innerHTML = unescape(o[i].phone);
				tr.appendChild(tdPhone);	
				tbody.appendChild(tr);	
	
			
				var country = unescape(o[i].country);
				caption.innerHTML = v + ' - ' + country;
				
				//var lan=unescape(o[i].language)	;
				var tdlanguage = document.createElement('td');
				tdlanguage.style.width = '20%';
				tdlanguage.innerHTML = unescape(o[i].language);
				tr.appendChild(tdlanguage);	
	
	
				var tdhours = document.createElement('td');
				tdhours.style.width = '40%';
				tdhours.innerHTML = unescape(o[i].hours);
				tr.appendChild(tdhours);	
				
	
				tbody.appendChild(tr);	
				tdPhone.className += ' last'; 
				
				
				
				if(i%2 == 0 || i==0){
					tr.className = 'oddrow';
				}else{
					tr.className = 'evenrow';
				}
			}
		}
	}


/* Event Handler functions */

	var __eventListeners = [];
	
	function addEventListener(instance, eventName, listener) {
		var listenerFn = listener;
		if (instance.addEventListener) {
			instance.addEventListener(eventName, listenerFn, false);
		} else if (instance.attachEvent) {
			listenerFn = function() {
				listener(window.event);
			}
			instance.attachEvent("on" + eventName, listenerFn);
		} else {
			throw new Error("Event registration not supported");
		}
		var event = {
			instance: instance,
			name: eventName,
			listener: listenerFn
		};
		__eventListeners.push(event);
		return event;
	}
	
	function removeEventListener(event) {
		var instance = event.instance;
		//alert(instance);
		if (instance.removeEventListener) {
			instance.removeEventListener(event.name, event.listener, false);
		} else if (instance.detachEvent) {
			instance.detachEvent("on" + event.name, event.listener);
		}
		for (var i = 0; i < __eventListeners.length; i++) {
			if (__eventListeners[i] == event) {
				__eventListeners.splice(i, 1);
				break;
			}
		}
	}

	function unregisterAllEvents() {
		while (__eventListeners.length > 0) {
			removeEventListener(__eventListeners[0]);
		}
	}

	function stopEvent(e) {
    	if (!e) e = window.event;
   			if (e.stopPropagation) {
        		e.stopPropagation();
    		} else {
        		e.cancelBubble = true;
    	}
	}

	function cancelEvent(e) {
    	if (!e) e = window.event;
    		if (e.preventDefault) {
       			e.preventDefault();
    		} else {
        		e.returnValue = false;
   		}
	}

	/* End Event Handler */

	function showEl(el) {
		el.style.display = 'block';
	}

	function hideEl(el) {
		el.style.display = 'none';
	}


	return {
		init : function () {
			addEventListener(document.getElementById('actionYes'), 'click', function () {
				hideEl(document.getElementById('contactUs1'));
				showEl(document.getElementById('contactUs2'));
			});

			addEventListener(document.getElementById('contactUsCancel'), 'click', function () {
				hideEl(document.getElementById('contactUs2'));
				showEl(document.getElementById('contactUs1'));
				resetData();
			});

			addEventListener(document.getElementById('contactUsSubmit'), 'click', function () {
				getResult();
			});


			business = document.getElementById('selectBusiness');
			countries = document.getElementById('selectCountry');
			errorEl = document.getElementById('errorMessage');
			populateData();
			addEventListener(business, 'change', populateCountry);
		}
	}
}


var contactExec = new contactUs();
addLoadEvent(contactExec.init);