﻿/* MaldivesMajlis.com 
-------------------------------------------------------------
*/

var showingCountryMap = true;
var trackHistory = true;



function init() {  
	var historyChanged = function(newLocation, historyData) {
			trackHistory = false;
			parseURL();
	}
	
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(historyChanged);
	
	try {
	  //var oFirstFocus = document.getElementById("firstfocus");
	  //if (oFirstFocus != false) { oFirstFocus.focus(); }
  	}catch(e){}
  
	try {
	  pageSpecificInit();
  	}catch(e){}
	
	pageLoaded = 1;
  
}

function parseURL() {
	var urlQuery = window.location.hash;
	var urlElements = new Array();
	urlElements = urlQuery.split('#');
	
	if (urlQuery == "") {
		//	Do Nothing	
	} else if (urlElements[1].indexOf('&', 0) != -1) {
		// Dhaairaas and Candidates Pages
		var pageType = urlElements[1].substring(0, urlElements[1].indexOf('&', 0));
		var contentID = urlElements[1].substr (urlElements[1].indexOf('&', 0) +1);

		if (pageType == "Atoll") {
			fetchDhaairaas(contentID, 'ContentPanel');
		} else if (pageType == "Dhaairaa"){
			fetchCandidates(contentID, 'ContentPanel');
		} else if (pageType == "PartyCandidates") {
			fetchPartyCandidates(contentID, 'ContentPanel');	
		}
	} else {
		// Other Types of pages
		if (urlElements[1] == "AboutUs"){
			fetchAboutUs('ContentPanel');
		} else if (urlElements[1] == "PartyStats") {
			fetchPartyStats('ContentPanel');
		} else if (urlElements[1] == "ForCandidates") {
			fetchForCandidates('ContentPanel');
		} else if (urlElements[1] == "News") {
			fetchNewsPage('ContentPanel');	
		}
	}
}

function windowResize() {  
  pageSpecificResize();
}

function newwindow(file,title, heightVal, widthVal) { //v2.0
	widthVal = widthVal || "520";
  window.open(file, title,'status=no, width='+widthVal+', height='+heightVal+', resizable=yes, scrollbars=yes');
}

/* Ajax */
function createRequestObject(){
var request_o; 
var browser = navigator.appName; 
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
}
/* The variable http will hold our new XMLHttpRequest object. */
var http = createRequestObject(); //default
var subRequestDisplayArea;
/* Function called to handle the list that was returned from the file.. */
function handleSubRequest(){
/* Make sure that the transaction has finished. The XMLHttpRequest object
has a property called readyState with several states:
4: Finished */
var displayContainer = document.getElementById(subRequestDisplayArea);
displayContainer.className = "ajax_message";
displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ";
if(http.readyState == 4){ //Finished loading the response
var response = http.responseText;
displayContainer.innerHTML = response;
displayContainer.className = "";
}
}



function fetchDhaairaas(atollid, DisplayArea){
	// track history
	if (trackHistory) {
		dhtmlHistory.add("Atoll&" + atollid, "");
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'sys/get_dhaairaas.php?atoll_id=' + atollid);
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}

function fetchCandidates(dhaairaaid, DisplayArea){
	// track history
	if (trackHistory) {
		dhtmlHistory.add("Dhaairaa&" + dhaairaaid, "");
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'sys/get_candidates.php?dhaairaa_id=' + dhaairaaid);
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ";
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}

function fetchCandidateDetails(candidateid, DisplayArea){

	var thishttp = createRequestObject();
	thishttp.open('get', 'sys/get_candidate_details.php?candidate_id=' + candidateid);
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ";
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
}


function fetchPartyStats(DisplayArea){
	// track history
	if (trackHistory) {
		dhtmlHistory.add("PartyStats");
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'sys/get_party_stats.php');
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}

function fetchPartyCandidates(party_id, DisplayArea){
	
	// track history
	if (trackHistory) {
		dhtmlHistory.add("PartyCandidates&"+party_id);
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'sys/get_party_candidates.php?party_id=' + party_id);
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ";
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}



function fetchAboutUs(DisplayArea){
	
	// track history
	if (trackHistory) {
		dhtmlHistory.add("AboutUs");
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'about_us.php');
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}

function fetchForCandidates(DisplayArea){
	
	// track history
	if (trackHistory) {
		dhtmlHistory.add("ForCandidates");
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'for_candidates.php');
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}


function fetchFeebackPage(DisplayArea){

	var thishttp = createRequestObject();
	thishttp.open('get', 'feedback.php');
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
}


function fetchNewsPage(DisplayArea){
	// track history
	if (trackHistory) {
		dhtmlHistory.add("News");
	}
	
	var thishttp = createRequestObject();
	thishttp.open('get', 'sys/get_aggregated_news.php');
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.className = "ajax_message";
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			displayContainer.innerHTML = response;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
	
	trackHistory = true;
}


/* Faths functions */

function mousehigh(iden) {
	document.getElementById(iden).style.color = '#f27300';
	/*document.getElementById(iden).style.background = '#eee';*/
}

function mouselow(iden) {
	document.getElementById(iden).style.color = '#00b0b6';
	/*document.getElementById(iden).style.background = '#fff';
	document.getElementById(iden).style.borderLeft  = "#ebebeb 1px solid";*/
}

function mouselow2(iden) {
	document.getElementById(iden).style.color = '#00b0b6';
	document.getElementById(iden).style.background = '#F5F5F5';
	document.getElementById(iden).style.borderLeft  = "#ebebeb 1px solid";
}

function mousehighsub(iden, iden1, iden2) {
	mousehigh(iden);
	//mousehigh(iden2);
	document.getElementById(iden1).style.visibility = 'visible';
}

function mouselowsub(iden, iden1, iden2) {
	mouselow(iden);
	//mouselow2(iden2);
	
	document.getElementById(iden1).style.visibility = 'hidden';
}

function mousehighsubsub(iden, iden1) {
	mousehigh(iden);

	document.getElementById(iden1).style.visibility = 'visible';
}

function mouselowsubsub(iden, iden1) {
	mouselow(iden);
	document.getElementById(iden1).style.background = '#F5F5F5';
	document.getElementById(iden1).style.visibility = 'hidden';
}


function show(idtg){
	var i=0;
	var fret = "";
	
	for (i=1;i<=2;i++)
	{
		fret="Map_"+i;
		
		if (idtg==i) {
			document.getElementById(fret).className = "vis";
		}
		else
		{
			document.getElementById(fret).className = "unvis";
		}
	}
}


/* -- Zoomed in Maps --*/
function show_countrymap(){
	if (!showingCountryMap) {
		cvi_map.remove(document.getElementById('maldmap'));
		document["maldmap"].src = 'images/maps/country.jpg';
		cvi_map.add(document.getElementById('maldmap'),{opacity: 25, areacolor: '#f47e36', bordercolor: '#f47e36', noborder: 'true'});
		showingCountryMap = true;
	}
}

function show_provincemap(imagefile, mapid){
	
		cvi_map.remove(document.getElementById('maldmap'));
		
		document.getElementById('Map_1').innerHTML = '<img src="images/maps/'+imagefile+'" alt="map" name="maldmap" border="0" usemap="#'+mapid+'" id="maldmap" width="400" />';
		
		cvi_map.add(document.getElementById('maldmap'),{opacity: 25, areacolor: '#f47e36', bordercolor: '#f47e36', noborder: 'true'});
		showingCountryMap = false;
		
}


function ImagePreloader() 
{
     // counter
     var i = 0;

     // create object
     imageObj  = new Array();
	 

     // set image list
     images = new Array();
     images[0]="images/maps/province_1.jpg";
     images[1]="images/maps/province_2.jpg";
     images[2]="images/maps/province_3.jpg";
     images[3]="images/maps/province_4.jpg";
	 images[4]="images/maps/province_5.jpg";
	 images[5]="images/maps/province_6.jpg";
	 images[6]="images/maps/province_7.jpg";
	 images[7]="images/maps/male.jpg";
	  images[8]="images/bg_poll_buttonHover.jpg";

     // start preloading
     for(i=0; i<=8; i++) 
     {
          imageObj[i] = new Image();
		  imageObj[i].src=images[i];
     }
	 
} 



function persistIfSelected(areaid){
	//	extAreaOver('maldmap',areaid);		
}


/* Search Candidates related functions */
var timerID = 0;
var newSearch = true;
var THROTTLE_PERIOD = 300;
var latestServerQuery = "ކެންޑިޑޭޓުގެ ނަން ޖައްސަވާ";

function searchQuery() {
    return document.getElementById("searchBox").value;
}

function clearTxtBox(TxtBox){
	document.getElementById(TxtBox).value = "";
}

function restoreDefaultTxtBox(){
	if (latestServerQuery == "ކެންޑިޑޭޓުގެ ނަން ޖައްސަވާ") {
		document.getElementById("searchBox").value = latestServerQuery;
		clearTimeout(timerID);
	}
}

function initiateSearch() {
	if (timerID != 0) {
		clearTimeout(timerID);
	}
	if (newSearch) {
		clearTxtBox("searchBox");
		
	}
	requestPlacesLoop();
}

function requestPlacesLoop() {
    
	if ((searchQuery()!="") && (searchQuery()!=latestServerQuery)) {

		fetchAddresses((searchQuery()), "v2_ContentContainer_Other");   
      	latestServerQuery = searchQuery();
		newSearch = false;
		
    }
    timerID = setTimeout('requestPlacesLoop();', THROTTLE_PERIOD);
}

function fetchAddresses(searchString, DisplayArea){
	
	var dataFile ='sys/v2_search_candidates.php?candidatename=' + encodeURIComponent(searchString) + '&sid=' + Math.random();
		
	var thishttp = createRequestObject();
	thishttp.open('get', dataFile);
	thishttp.onreadystatechange =function(){
		var displayContainer = document.getElementById(DisplayArea);
		displayContainer.innerHTML = " <img src='images/ajax-loader.gif'> މައުލޫމާތު ތައްޔާރުކުރެވެނީ... މަޑުކޮށްލައްވާ" ;
		if(thishttp.readyState == 4){ //Finished loading the response
			var response = thishttp.responseText;
			var extraStuff = '<div id="LeftContainer"><div id="MapPanel"></div> <!-- end MapPanel Div--></div> <!-- end LeftContainer Div-->'; 
			extraStuff += '<div id="RightContainer"><div id="ContentPanel">'; 
			extraStuff += response;
			extraStuff +=  '</div></div> <!-- end RightContainer Div--><div class="clearall"></div>';
			displayContainer.innerHTML = extraStuff;
			displayContainer.className = "";
		}
	}
	thishttp.send(null);
		
}
