//Voor het geval er ook andere initialisaties gedaan moeten worden
var doInitDrags = false;
var doMenu= false;

function pageInit() {

		if (doInitDrags)
				initDrags();

		if (doMenu)
				getMenu();

		// deze wordt dus in een loop herhaald
		if (document.getElementById('progress_container'))
		{
					checkQueue(0,false);
		}

		if (document.getElementById('blck'))
		{
   				Sortable.create("blck", {dropOnEmpty:true,containment:["blck"],constraint:false});
		}
}

function mozInlineBox() {
  var aa = document.getElementsByTagName('label');
  for (i=0; i< aa.length; i++) {
      aa[i].style.display= '-moz-inline-box';
  }
}

function getMenu()  {
	var menuDiv = document.getElementById('menu');
	if (menuDiv)
	{
		ajaxCall(getMenuURL,responseCMSMS,1,0);
	}
}

function responseCMSMS (request)
{
		var menuDiv = document.getElementById('menu');
		menuDiv.innerHTML = request.responseText;
}


function searchSwinxsers() {

		var frm = document.getElementById('searchFriend');

		if (frm && document.forms.searchFriend.q.value != "")
				doSearch (document.forms.searchFriend.q.value);	
		else
		{
			alert('أدخل اسماً أو عنواناً في حقل البحث');
			document.forms.searchFriend.q.focus();
		}
}

function doSearch(q) {
		var ele = $('zoeklijstje');
		if (ele) 
		{
			while (ele.firstChild) {
  					ele.removeChild(ele.firstChild);
			}
			ele.style.display = 'none';
		}

		var url = '../home/searchClient.php?q=' + q;
							new Ajax.Request(url, {
									method: 'get',
									onSuccess: function(req) { 
																// afhandeling response
																var oFriends = null;
																eval   (req.responseText);
																if (oFriends)
																{
																				var divHtml;
																				if (!$('zoeklijstje'))
																				{
																						var divHtml = "<div id='zoeklijstje' style='display:none; height: " + (oFriends.nrFound+1)*1.5 + "em;'>" + oFriends.content + "</div>";
																						var dum = new Insertion.After('searchFriend', divHtml );
																				}
																				else
																				{
																						$('zoeklijstje').innerHTML =    oFriends.content ;
																						$('zoeklijstje').style.height = (oFriends.nrFound+1)*1.5 + 'em';
																				}
																				var dum = Effect.toggle('zoeklijstje', 'blind' );
																}
												}	
									});
}

var retry_counter = 0;
var prev_progress = -1;
var timeout_poller = 2000;

function checkQueue(cleanup, scrollTo)
{
		if (isNaN(scrollTo) || scrollTo)
		{
				new Effect.ScrollTo('login');
		}

		if (retry_counter++ > (10 * 60 * 1000 / timeout_poller)) // 10 minutes for firmware upgrade on a slow PC without driver
		{
				// Stop polling.. Perhaps warn the user?
		}
		else
		{
				ajaxCallRich('../swinxs/checkQueue.php?cleanup=' + cleanup, processResponse, 1, 0, false);
		}
}

function processResponse(request)
{
		var responseQueue = null;
		try {
				eval(request.responseText);
		}
		catch (e) {
		} 
		if (responseQueue == null) 
		{
				setTimeout('checkQueue(0, false)', timeout_poller);
				return;
		}

		if ( prev_progress != responseQueue.progress ) 
		{
				// Progress changed, so we'll start polling again.
				retry_counter = 0;
				prev_progress = responseQueue.progress;
		}

		if (responseQueue.running == 0)
		{
			 // We're done -- remove progress bar
			if ($('queueProgress')) removeProgressBar();
		}
		else if (responseQueue.status == 'SUCCESS')
		{
				if (!$('queueProgress')) createProgressBar();

				document.getElementById('queueProgress').style.width = "290px";
				document.getElementById('queueMessage').innerHTML = "انتهى " + responseQueue.message + ".";

				setTimeout('checkQueue(1, false)', timeout_poller); // clean up queue
		}
		else if (responseQueue.status != 'IN_PROGRESS')
		{
				// To do: make sure we get failure status (not working currently)

        Effect.toggle(getElementById("unsuccesful"), "blind");
				ajaxCall("../swinxs/deleteunsuccesful.php?",function() {},1,0,0);

				if (!$('queueProgress')) createProgressBar();

				document.getElementById('queueMessage').innerHTML = "خطأ " + responseQueue.message + ".";

				setTimeout('checkQueue(1, false)', timeout_poller); // clean up queue
		}
		else
		{
				if (!$('queueProgress')) createProgressBar();

				document.getElementById('queueProgress').style.width = 2 + Math.round(responseQueue.progress/100 * 288) + "px";   
				document.getElementById('queueMessage').innerHTML = "مشغول " + responseQueue.message + "... " + responseQueue.progress + "%";

				if ( responseQueue.action == 'INSTALL_FIRMWARE' ){
						if ( responseQueue.progress >= 80 ){
							if ( responseQueue.progress < 90 ){
								// show
								ajaxCall ('../swinxs/flashwarning.php?', function( response ){ 
									var warning = document.getElementById( 'flashwarning' );													
									if ( warning == null && ! Swinxs.FlashWarningShown ){
										var div = document.createElement( 'div' );
										div.innerHTML = response.responseText;
										div.id = 'flashwarning';
										document.getElementById( 'progress_container' ).appendChild( div );
										Swinxs.FlashWarningShown = true;
									}
								},1,0,false);
							} else {
								var warning = document.getElementById( 'flashwarning' );													 
								if ( warning != null ){
									warning.parentNode.removeChild( warning );
								}
							}
						}
				}

				setTimeout('checkQueue(0, false)', timeout_poller);
		}
}

function createProgressBar () {
var element = $('progress_container');
	element.innerHTML = "<p style='height: 60px; position: relative; top: 6px;'><img src='"+ imagePath + "/swinxs/queue_bg.gif' style='height: 50px; width: 290px;'><img id='queueProgress' src='" + imagePath + "/swinxs/queue_progress.gif' style='position: relative; top: -55px; width: 100px; height: 50px;'><img src='"+ imagePath + "/swinxs/queue_mask.png' style='position: relative; top: -110px;'></p><p><span id='queueMessage'></span></p>"; 
}

function removeProgressBar() 
{
			var element = $('progress_container');
			if (element)
							while (element.firstChild) {
										element.removeChild(element.firstChild);
							};
}

window.onload = pageInit;

function SwitchSite()
{
        var select = document.switchsite.lang;
        var url = window.location.href;
        window.location.href = url.replace(/\/..\//, '/' + select.options[select.selectedIndex].value + '/');
}

