
/****************************************
*   Copyright © 2005-2007 Somalism.com,
*   All rights reserved
*   Author: Said
*
*   Last mod.: Dec 17th, 2006
*   sweet candy: http://www.dustindiaz.com/top-ten-javascript/
**********************************************************/



function getEl(id) {return $(id); }

function addEvent(elm, evType, fn, useCapture){
  if (elm.addEventListener){
	elm.addEventListener(evType, fn, useCapture);
	return true;
  } else if (elm.attachEvent){
	var r = elm.attachEvent("on"+evType, fn);
	return r;
  } else {
	alert("Handler could not be removed");
  }
} 

addEvent(window, "load", setInterval('blinkIt()',500));

function blinkIt() {
 if (!document.all) return;
 else {
   for(i=0;i<document.all.tags('blink').length;i++){
      s=document.all.tags('blink')[i];
      s.style.visibility=(s.style.visibility=='visible')?'hidden':'visible';
   }
 }
}

String.prototype.trim = function() {
	return (this.replace(/^\s*|\s*$/g,""));
	}

String.prototype.stripHTML	= function(){
	return this.replace(/<.*?>/g, '');
	}

String.prototype.fill= function(i,c){
	str = this; c = c || ' ';
	 for (; str.length<i; str+=c){}; return str;
	}


/* Function prototype */
function $() 
{
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++)
  {
    var element = arguments[i];
      if (typeof element == 'string')
        element = document.getElementById(element);
      if (arguments.length == 1)
        return element;
      elements.push(element);
  }
  return elements;
}


function toggleView(divid,flag)
{
   if (document.layers){
	 document.layers[divid].display=(flag)?"block":"none";
	}
   else {
	getEl(divid).style.display=(flag)?"block":"none";
	}

}

function showhide(id) {
	 getEl(id).style.display =  getEl(id).style.display == 'none' ? '' : 'none';
	 if(id=="sideBar")
		 getEl('shL').innerHTML=getEl(id).style.display == 'none' ? 'Show side menu' : '';
		
	 }



//Dictionary form textarea limit (soo gudbinta som-en dictionary, xadka=51 xaraf)
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
		getEl(limitCount).innerHTML= '<font color=\'red\'>ok, that\'s enough..</font>';
	} else {
		limitCount.value = limitNum - limitField.value.length;
		getEl(limitCount).innerHTML= limitNum - limitField.value.length;
	}
}

function hagaaji(){
//.. dadku waa iska dan yar.. 
//consider 800x600 resolutions too..

	getEl('menuLinks').style.margin=(screen.width > '800')?'0 0 0 40px':'0';
	if(getEl('news')) getEl('news').style.width=screen.width > '800'?'660px':'460px';
	if(getEl('loadingContent')) getEl('loadingContent').style.display='none';

	if(screen.width < '810'){
  		getEl('sideBar').style.display='none';
   		getEl('shL').innerHTML='Show side menu';
		}
}


function popUp(pageurl,width,height,resize,scroll,loc){
	day = new Date();
	id = day.getTime();if(typeof loc=="undefined")loc=1;
	if (window.screen) {  
		lpos = (screen.width/2)-(width/2);  
		hpos = (screen.height/3)-(height/3);
	}else	{
		lpos = 1;
		hpos = 1;		
	}		 		
	eval("popWin"+id+" = window.open('"+pageurl+"','"+id+"','toolbar=0,scrollbars="+scroll+",location="+loc+",status=0,menubar=0,resizable="+resize+",width="+width+",height="+height+",left="+lpos+",top="+hpos+"')");
}




//linear array search
Array.prototype.inArray = function (value)
{
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===)
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

function foo(elm,cont){elm.innerHTML=cont;}


function ViewGallery(folder,ciwaan,xtra,str){
	if(folder != ""){
	var req = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
	var n=(str=="" || typeof str=="undefined")?"":str;
	req.open("GET", "/media/videos/dummy.php?n="+n, true);
	req.send(null);

var t=(getEl("news")==null)?getEl("vidDiv"):getEl("news");
var obj  = '<span style="float:right;"><a href="javascript:void(0)" onclick="this.parentNode.parentNode.innerHTML=\'\';">close gallery</a></span>';
	obj += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="680" height="500">';
	obj += '<param name="menu" value="false">';
	obj += '<param name="movie" value="/toolz/imageV/imageV.swf">';
	obj += '<param name="quality" value="high">';
	obj += '<param name="salign" value="l" />';
	obj += '<param name="FLASHVARS" value="globalpath=http://www.somalism.com/toolz/imageV/&folder=content/'+folder+'&'+xtra+'&startheading='+ciwaan+'">';
	obj += '<embed src="/toolz/imageV/imageV.swf" salign="l" width="680" height="500" menu="false" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" flashvars="globalpath=http://www.somalism.com/toolz/imageV/&configfile=config.ini&folder=content/'+folder+'&'+xtra+'&startheading='+ciwaan+'"></embed></object>';



		t.innerHTML = obj;
		$("m1").scrollIntoView();
		toggleView(t.id,true);
		//getEl("vidDiv").style,margin='0x 0px 20px 0px';
		urchinTracker('/gallery.html');

	}
}


/* Obsolete, to be deleted soonish */
function viewVidClip(vid,h,w){
	var path=""
	if(vid != ""){
	var req = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
	req.onreadystatechange = function () {           
        if (req.readyState == 4) {
            if (req.status == 200) {

			values = req.responseText.split("|");

			if(values[0].substring(0,3)=="www") 
				path="http://"; 

			else if(values[0].substring(0,3)=="mms" || values[0].substring(0,3)=="htt") 
				path=""; 
			else 
				path="http://somalism.com/media/videos/";

			var oVid = new vidObject(values[0],h,w,values[1],path);
			oVid.init();
			urchinTracker('/videos.html');

		if(values[0]=="ext"||h=="ext") return "";
			getEl("vidDiv").style.display='block'
			getEl("vidDiv").innerHTML='<table width="100%"><tr><th align="left" valign="bottom"><img src="/media/videos/thumbs/attention.OLD.png"> '+values[2]+'</th><td align="right" valign="top"><a href="javascript:void(0)" onclick="if(getEl(\'player\')){somalismVid(\'stop\');}getEl(\'vidDiv\').innerHTML=\'\';"><span style="margin-top:-2px;">close</span> <img  src="/graphics/close-w.gif" height="10" width="10" title="Close videos" alt=""/></a> </td></tr></table>';
			getEl("vidDiv").innerHTML += oVid.play();
			getEl("vidDiv").scrollIntoView();
			if(vid=="AlMajdTV") getEl("m1").scrollIntoView();
			var player=$("MediaPlayer");
			player.attachEvent("playStateChange",pState);



            } else {//
            }
        }
    };

	req.open("GET", "/media/videos/videoplayer.php?vid="+vid, true);
	req.send(null);
	}
}

//-------------------------------------------------------------
function embedVideo(vid, elem){

if(vid != ""){
  var req = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
  req.onreadystatechange = function () {           
   if (req.readyState == 4) {
    if (req.status == 200) {
     if(req.responseText=="") return "";
	 if(elem!=null) elem =getEl("VidCont");

//TODO:
//Fix css for this buddy
     getEl(elem).style.display='block'
     getEl(elem).innerHTML = req.responseText;
     getEl(elem).scrollIntoView();

     /*getEl("vidDiv").style.display='block'
     getEl("vidDiv").innerHTML = req.responseText;
     getEl("vidDiv").scrollIntoView();
*/
     urchinTracker('/videos.html');			
     var player=$("MediaPlayer");
     if(player) player.attachEvent("playStateChange",pState);
    } else {getEl("vidDiv").innerHTML="<h1>An error occured.. sorry..</h2>";}
   }
  };
   req.open("GET", "/media/videos/embed.php?local=true&url="+vid, true);
   req.send(null);
 }
}

//------------------------------------------------------
function generateBlogCode(video,h,w,autoplay){
if(video != ""){
 var req = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
 req.onreadystatechange = function () {           
 if (req.readyState == 4) {
   if (req.status == 200) {
	values = req.responseText.split("|");
	getEl("blogCodeContainer").style.display='block';
	getEl("blogCode").innerHTML = values[0];

	var form=document.forms.blogCodeForm;
	form.height.value=values[1];
	form.width.value=values[2];
	form.videoName.value=values[3];

	getEl("m1").scrollIntoView();
	if(values.length==4) toggleView('videoSizeControls',false);
     } else {getEl("blogCode").innerHTML="<h1>An error occured.. sorry..</h2>";}
    }
  };
	video=video.replace(/^\s*|\s*$/g,"");
	var fooRandom=parseInt(Math.random()*99999999);
	req.open("GET", "/media/videos/embed.php?BlogCode="+video+"&height="+encodeURI(h)+"&width="+encodeURI(w)+"&autoStart="+autoplay+"&foo="+fooRandom, true);
	req.send(null);
 }
}



function urlGen(upd) {
    var req = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");

	url     = document.urlgen.furl.value;
	a       = parseInt(document.urlgen.a.value);
	b       = parseInt(document.urlgen.b.value);
	prefix  = document.urlgen.prefix.value;
	suffix  = document.urlgen.suffix.value;
	ext     = document.urlgen.ext.value;
	down    = (document.urlgen.downl.checked)?true:false;


	if(url=="")
		return false;
if(!upd){
		if(isNaN(a)){
			getEl("genUrls").innerHTML ='<h3><font color=\"red\">The <b>start</b> value (\"'+document.urlgen.a.value+'\") is not a number </font></h3>';
			document.urlgen.a.focus();
			return false;
			}
	
		if(isNaN(b)){
			getEl("genUrls").innerHTML ='<h3><font color=\"red\">The <u>end</u> value (\"'+document.urlgen.b.value+'\") is not a number </font></h3>';
			document.urlgen.b.focus();
			return false;
			}
	   }
	   else{
		if(isNaN(a)) a="";
		if(isNaN(b)) b="";		
		}
	
	if(a<0 || b<0){
		if(a<0) a=-a;
		getEl("genUrls").innerHTML ="<h4><font color=\"red\">Both numbers need to be positive...<br>Did you mean \"<i>"+prefix+"-"+a+"</i>\"? .. if yes, then you can put the hyphen (<b>-</b>) at the end of the file name..</h4>";
		return false;
	}

	

	if(a>b && b!=''){
		getEl("genUrls").innerHTML ="<h3><font color='red'>The numbers must be in ascending order!</h3>";
		return false;
		}

    req.onreadystatechange = function () {           
        if (req.readyState == 4) {
            if (req.status == 200) {
                getEl("genUrls").style.display="block"
                getEl("genUrls").innerHTML = req.responseText;
				if(!upd && down)
                getEl("genUrls").innerHTML = req.responseText.replace(/\n/g, '<br>');
            } else {
                //alert("error:\n" + req.statusText);
            }
        }
    };
	getEl('genUrls').innerHTML='<img src="/graphics/loading2.gif" alt=""/>';
	var genUrl="includes/urlGenerator.php?var="+url+","+a+","+b+","+prefix+","+suffix+","+ext+","+upd+","+down;
	
	if(!upd && down) location="/"+genUrl;

    req.open("GET", genUrl, true);
    req.send(null);
return false;
}


//XML FLV video playa
function ViewClip(vid,width,height,str,elm,xtraVars,p){
var path=""
if(vid != ""){
var req = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function () {           
  if (req.readyState == 4) {
       if (req.status == 200) {

		    values = req.responseText.split("|");
		var url=escape(values[1].toString());
		var desc=values[2];var r=25;

		var target=getEl("vidDiv");
		if(elm!=null)
			target=getEl(elm);
			target.style.display='block'
			var w=parseInt(width)+25;
		
		if(p==null || typeof p=="undefined")
			 player="gplayer.swf?videoUrl=";
			else player="flvplayer.swf?url=";
	
		var obj = '<div class="sideBarBlue" style="float:none;width:'+w+'px;margin:20px;padding:0px;">';
		obj += '<div class="sideBox" style="width:100%;">';
		obj += '	<span class="closeButton" style="margin-left:6px;"><a href="javascript:void(0)" onclick="this.parentNode.parentNode.parentNode.innerHTML=\'\';return false;" onmouseover="this.style.padding=\'0\'"><img src="/graphics/close.gif" height="15" width="15" title="Close videos" alt=""/></a></span>';
		obj += '<h2><b><font color="#ff8000">Info:</font></b> '+desc+'</h2>';
		obj += '<embed style="width:'+width+'px; height:'+height+'px;margin:0 12px 0px 12px;" id="vid" align="middle" type="application/x-shockwave-flash" src="/media/videos/'+player+url+'" quality="best" bgcolor="#E1F3FF" scale="noScale" wmode="window" salign="TL" FlashVars="playerMode=normal&autoPlay=true&'+xtraVars+'"></embed>';
		obj += '<div class="userInfo" style="margin:0 0 10px 0;padding-left:30px;width:200px;"><b>Info: </b>'+values[0]+'</div>';
		obj += '</div>';
		obj += '</div>';
	
		target.innerHTML = obj;
		target.scrollIntoView();
		target.style.background='transparent';
		target.style.display='block';
		urchinTracker('/videos.html');

            } else {//
            }
        }
    };
	
	req.open("GET", "/media/videos/XMLvideo.php?vars="+xtraVars+"&vidUrl="+vid, true);
	req.send(null);
  }
}
