/**
* Javascripti Document
* author: Livingstone Fultang
**/
var widget = new joom_widget();

function joom_widget() {

    this.id 			= "";
    this.name 			= "";
    this.user 			= "";
    this.contentstyle 	= "";
    this.jquery 		= false;
	this.qurl			=
    this.close = function(id) {
        var container = document.getElementById("profilebox");
        var widgetbox = document.getElementById(id);
        widgetbox.innerHTML = "closing...";
		widgetbox.setStyle('padding','5px');
        container.removeChild(widgetbox);
    };
    this.settings = function( cmd ) {
       jQuery.facebox( 
		   new Ajax('index.php', {
				postBody: 
				 Object.toQueryString(
					{ "tmpl" : "component", "option" : "com_joomunity", "cmd" : cmd }
				  ),
				onComplete: function(inResponse) {
					HTML = '<div style="max-width: 500px;">'+inResponse+'</div>';
				    jQuery.facebox( HTML );
				}
		   }).request()
		);
		return;
    };
    this.showfacebox = function(content) {
        jQuery.facebox('' + content + '');
    };
    this.toggle = function(id) {
        var content = id + '_content';
		var box 	= document.getElementById(content);
        var style 	= box.style.display ;

     	if (style !== 'block') {
            box.style.display = 'block' ;
        } else {
           box.style.display = 'none' ;
        }
    }
}

function joom_loader() {
    var loaded = new Array();
    this.load = function(filename) {
        if (this.getLoaded(filename) === true) {
            alert('loaded');
            return false;
        }
        var scriptTag = document.createElement("script");
        scriptTag.src = JOOM_LIVE_SITE + filename + ".js";
        var headTag = document.getElementsByTagName("head").item(0);
        headTag.appendChild(scriptTag);
        return this.addLoaded(filename);
    };
    this.addLoaded = function(file) {
        loaded[file] = true;
    };
    this.getLoaded = function(file) {
        return loaded[file];
    };
}
function closeSystemMessage() {
    var msgBox = document.getElementById('systemmessage');
	msgBox.style.display = 'none' ;
}
function getUrlVars() {
    var vars = [],
    hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

var joom_status = new function(){
	
	this.editstatus = function(){
		imgDiv      = $('ajaxworking');
		textAreaDiv = $('edittextarea');
		textAreaDiv.setStyles({
			"padding-left": "32px",
				"background-image" : "url("+imgDiv.src+")",
					"background-repeat":"no-repeat",
						"background-position":"0 50%"
			});
		imgDiv.inject(textAreaDiv , top );
	};
	this.save = function(){
		
		oldtext = $('cpstatus').innerHTML 
		newtext = $('edittextarea').value;
		
        this.editstatus();
        
		if (oldtext == newtext) {
			this.stopEditStatus( true );
			return false;
		}
		$('cpstatus').innerHTML = newtext;
		new Ajax('index.php', {
			postBody: Object.toQueryString({
				"format": "raw",
				"option": "com_joomunity",
				"cmd": "Profile.updatestatus." + $('statusupdate').className ,
				"json": "saveresponse",
				"status": newtext
			}),
			onComplete: function(inResponse){
				success = Json.evaluate(inResponse);
				if(success.saveresponse == true){
					joom_status.stopEditStatus(true);
				}else{
				    joom_status.stopEditStatus(false , success.saveresponse );	
				}
			}
		}).request();
	};
	this.stopEditStatus = function(boolStsResp, stsRespError){
		if(typeof stsRespError == 'undefined'){
			stsRespError = '';
		}
		switch(boolStsResp){
			case true :
			   //do nothing alert('success edit');
			break;
			case false :
				alert(stsRespError);
			break;
		}
		textAreaDiv = document.getElementById('edittextarea');
		textAreaDiv.setStyles({
			"padding-left": "0px",
				"background-image" : "none"
			});
		textAreaDiv.value = '';
		//alert('editing stoped');
	};
	this.getStatus = function(){
		new Ajax('index.php', {
		    postBody: 
			 Object.toQueryString(
				{ 
				  "format" : "raw", 
				  "option" : "com_joomunity", 
				  "cmd" : "Profile.updatestatus." + $('statusupdate').className + ".getcurrent" ,
				  "json" :"getresponse" 
				}
			  ),
			  onComplete: function (inResponse){
				 resp = Json.evaluate(inResponse);
				 $('originalStatus').innerHTML = resp.getresponse.status; 
				 $('edittextarea').innerHTML   = resp.getresponse.status;
			  }
		}).request();
	}
	
}

function isValidUrl(url) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(url);
}
function errorReport( reportOBJ ){
	form = document.user_report;
	form.title.value  = reportOBJ.title;
	form.app.value 	  = reportOBJ.appName;
	form.cmd.value    = reportOBJ.appName+'._ureport.'+reportOBJ.reporter;
	form.pid.value    = reportOBJ.itemID;
}

Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for (var x = 0; x <= len; x++) {
		if (this[x] == obj) 
			return true;
	}
	return false;
}

var joom_cp = new function(){
	this.showDesktop = function(){
		//this.ajaxworking('hide');
		this.makecurrent('dashboard');
		if ($('desktopstore').innerHTML !== '') {
			$('cpanel').innerHTML = $('desktopstore').innerHTML;
		}
	};
	this.getItem = function(type){
		//cpanel  = $('cpanel'); 
		this.makecurrent(type);
		if ($('desktopstore').innerHTML == '') {
			$('desktopstore').innerHTML = $('cpanel').innerHTML;
		}
		$('cpanel').innerHTML = '';
		//this.ajaxworking('hide');
		//this.ajaxworking('show');
		switch(type){
			case 'status':
			    currStatusText = joom_status.getStatus();
				this.ajaxworking('hide');
				$('cpanel').innerHTML = $('statusupdate').innerHTML;
			break;
		
			case 'social':
				new Ajax('index.php',{
					 postBody: 
					 Object.toQueryString(
						{ 
						  "format" : "raw", 
						  "option" : "com_joomunity", 
						  "cmd" : 'Profile.settings.'+$('statusupdate').className+'.social',
						  "json" :"response"
						}
					  ),
					  onComplete: function (inResponse){
						 var respo = Json.evaluate(inResponse);
						 joom_cp.ajaxworking('hide');
						 $('cpanel').innerHTML = respo.response;
					  }
				}).request();
			break;

			case 'configuration':
				new Ajax('index.php',{
					 postBody: 
					 Object.toQueryString(
						{ 
						  "format" : "raw", 
						  "option" : "com_joomunity", 
						  "cmd" : 'Profile.settings.'+$('statusupdate').className+'.configuration',
						  "json" :"response" 
						}
					  ),
					  onComplete: function (inResponse){
						 var respo = Json.evaluate(inResponse);
						 joom_cp.ajaxworking('hide');
						 $('cpanel').innerHTML = respo.response;
					  }
				}).request();
			break;
			
			default:
			    var tabItem = $( type );
			    //make sure its clean
			    var tabItemClone = tabItem.clone();
			    //alert(tabItemClone);
			    //alert('IE is crazy');
			    $('cpanel').innerHTML = '';
			    
			    tabItemClone.inject( $('cpanel')  );
			
			break;	
		}
	};
	this.ajaxworking = function(state){
		switch(state){
			case 'show':
				$('ajaxworking').style.display = 'block';
			break;
			case 'hide':
				$('ajaxworking').style.display = 'none';
			break;
		}
	};
	this.makecurrent = function(anchor){
		var ulcpmenu = $('cp-menu-list');
		var anchors  = ulcpmenu.getElements('a');
		for(i=0 ; i<anchors.length; i++){
			if(anchors[i].hasClass('current')== true ){
				anchors[i].removeClass('current');
				break;
			}
		}
		$('a'+anchor).addClass('current');
	};
	this.getSettings = function(app, userid){
		$('appSettingsDiv').innerHTML = '';
		this.ajaxworking('show');
		ulcpmenu = $('globalsettingsmenu');
		anchors  = ulcpmenu.getElements('li');
		for(i=0 ; i<anchors.length; i++){
			if(anchors[i].hasClass('current')== true ){
				anchors[i].removeClass('current');
				break;
			}
		}
		$('li'+app).addClass('current');
		//alert(app+'.settings.'+userid);
		new Ajax('index.php',{
			 postBody: 
			 Object.toQueryString(
				{ 
				  "format" : "raw", 
				  "option" : "com_joomunity", 
				  "cmd" : app+'.settings.'+userid,
				  "tmpl" :"component" 
				}
			  ),
			  onComplete: function (inResponse){
				 //alert(inResponse)
				 joom_cp.ajaxworking('hide');
				 $('appSettingsDiv').innerHTML = inResponse; 
			  }
		}).request();
	};
	this.cloneElement = function cloneElement(type, elm)
	{
		var newElm = document.createElement(type);
		for (var i in elm)
			{
				newElm.innerHTML =+ elm[i] ;
			}
		return newElm;
	}
}

String.prototype.renderURL = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		return url.link(url);
	});
};

String.prototype.renderUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function(name) {
		var username = name.replace("@","")
	    return name.link("http://twitter.com/"+username);
	});
};

String.prototype.renderHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function(tag) {
		var hash = tag.replace("#","%23")
		return tag.link("http://search.twitter.com/search?q="+hash);
	});
};


