var cat_page = {};
var clock;
var weather;
var last_loc = "";
window.addEvent('domready' , function(){
	try {
    	document.execCommand( "BackgroundImageCache", false, true );
	} catch( e ) { };
	
    $$('.news_browse').each(function(el){
        
        var cat_id = el.className.match(/cat([0-9]+)/)[1].toInt();
        var split2 = el.className.match(/mp([0-9]+)-([0-9]+)/);
        
        cat_page[cat_id] = {'page':1, 'max_page':split2[1].toInt() , 'items_pp' : split2[2].toInt()};
       
        var AjaxNav = el.getNext();
        
        UpdateArrowDisplay(cat_id , AjaxNav);
        //alert("test2");
        AjaxNav.getElements('.left , .right').each(function(arrow){
            var dir = arrow.className == "left" ? 1 : -1;
            
            
            var arlink = arrow.getParent();
            
            
            arlink.addEvent('click' , function(ev){
                new Event(ev).stop();
                
                //Ignore invalid code
                dest_page = cat_page[cat_id].page + dir;
                if(dest_page < 1 || dest_page > cat_page[cat_id].max_page)
                    return false;
                
                var url = "/ajax.php";
                var jsonRequest = new Request.JSON({url: url, onComplete: function(news_items){
                    
                    
                    
                    cat_page[cat_id]['max_page'] = news_items.max_page;
                    
                    el.empty();
                    $each(news_items.items , function(item){
                        if(item.img) {
                            new Element('img' , {'src':'/uploads/news/id' + item.news_id + '/' + item.img}).injectInside(el);
                        }
                        new Element('br').injectInside(el);
                        new Element('a' , {'href':'/news/' + item.news_id}).appendText(item.news_title).injectInside(el);
                        new Element('br').injectInside(el);
                        new Element('br').injectInside(el);
                        el.appendText(item.formatted_date);
                        new Element('br').injectInside(el);
                        el.appendText(item.summary + " ");
                        
                        //new Element('a' , {'href':'/news/' + item.news_id}).appendText("קרא עוד...").injectInside(new Element('span').injectInside(el));
                        new Element('br').injectInside(el);
                        
                    });
                    if(news_items.items.length == 0)
                        return false;
                        
                    cat_page[cat_id]['page'] += dir;
                    UpdateArrowDisplay(cat_id , AjaxNav);
                }}).get({'cat_id' : cat_id , 'page' : cat_page[cat_id]['page'] + dir , items_pp : cat_page[cat_id]['items_pp']});
                
            });
            
            
            
        });
    });
    
    var pre = ['usa' , 'eng' , 'eur' , 'kan' , 'ost' , 'world'].map(function(el){
        return "/images/work_" + el + "_on.gif";
    });
    var Images = Asset.images(pre);
    
    $$('.flash').each(function(el){
        var furl = el.get('html');
        furl = furl.substring(4 , furl.length - 3);
        
        var obj = new Swiff(furl,{
            width: el.getSize().x,
            height: el.getSize().y,
            container:el,
            params:{
            	wmode:'opaque'
			}
		});
    });
    
    if($('clock')){
        clock = $('clock');
        UpdateClock();
        var up = UpdateClock;
        up.periodical(999);
        var selector = clock.getNext();
        selector.addEvent('click' , (function(){
            var text = this.options[this.selectedIndex];
            $('timezone').set('html' , text.text);
            UpdateClock();
            /*.text and .value*/
        }).bind(selector));
    }
    
    weather = $('weather');
    if(weather){
        UpdateWeather();
        weather.addEvent('click' , function() { UpdateWeather(); });
    }
    
    if ($('forum_body')) {
        $('forum_body').getElements('.forum_post_body').each(function(el) {
            el.getPrevious().addEvent('click', function(e) {
                e = new Event(e).stop();
                ftoggle(el);
            });
            
            var img = el.getParent().getPrevious().getChildren()[0];
			img.addEvent('click', function(e) {
                e = new Event(e).stop();
                ftoggle(el);
            }).setStyle('cursor','pointer');
        });
    }
    
    $$('.jrecommand').each(function(el){
    	var fullInfoBox = el.getNext();
    	el.removeClass('opened');
    	fullInfoBox.setStyle('display','none');
    	el.addEvent('click', function(){
    		var Vis = fullInfoBox.getStyle('display');
    		if(Vis == "none"){
    			fullInfoBox.setStyle('display','block');
    			el.addClass('opened');
			}
			else
			{
				fullInfoBox.setStyle('display','none');
    			el.removeClass('opened');
			}
		});
    	
	});
    
});
function ftoggle(fitem){
	fitem.toggleClass('hide');
                
    var img = fitem.getParent().getPrevious().getChildren()[0];
    var cStatus = /(open|close)/.exec(img.src)[0];
    var nStatus = cStatus == "open" ? "close" : "open";
    img.src = img.src.replace(cStatus , nStatus);
}
function UpdateWeather(){
    
    var code = weather.value;
    if(code == last_loc){
        return false;
    }
    
    last_loc = code;
    var place = weather.options[weather.selectedIndex].text;
    
    var myurl = "http://" + window.location.host + "/weather.php?loc_id=" + code;
    
    //alert(
    
    var jsonRequest = new Request.JSON({'url': myurl, onComplete: function(report){

        var cont = weather.getParent().getParent();
        
        if(report.condition && report.condition.temp){
        	var unit = report.units.temperature;
        	$("location").set('text' , place + " " + report.condition.temp + unit );
        	
        	var cond = $("cond");
        	cond.getElement("span").set('text' , report.condition.text);
        	cond.getElement("img").setStyle('display','inline');
        	cond.getElement("img").set('src' , '/images/weather/' + report.condition.icon + ".png");
		} else {
        	$("location").set('text' , place );
        	var cond = $("cond");
        	cond.getElement("span").set('text' , 'לא ידוע');
        	cond.getElement("img").setStyle('display','none');
		}
        
        
        
            
        
        

        var cond_tommorow = $("cond_tommorow");
        
        if(report['forecast'] && report.forecast['low'] &&  report.forecast['high'])
            cond_tommorow.getElement("span").set('text' , report.forecast.low + unit + " - " + report.forecast.high + unit)
        else
            cond_tommorow.getElement("span").set('text' , '?');
            
    	var humid = $("humid");
    	//console.log(report);
    	if(report.atmosphere && report.atmosphere.humidity)
    		humid.getElement("span").set('text' , report.atmosphere.humidity + "%");
    	else
    		humid.getElement("span").set('text' , "?");

    }});
    
    jsonRequest.get();
    
    
    
}
function UpdateArrowDisplay(cat_id , arrow_cont){
    
    arrow_cont.getElement('.left').getParent().setStyle('display', (cat_page[cat_id]['max_page'] <= cat_page[cat_id]['page']) ? "none" : "" );
    arrow_cont.getElement('.right').getParent().setStyle('display', cat_page[cat_id]['page'] == 1  ? "none" : "" );
    
}
function addBookmark(title, url) { 

    if (window.sidebar) {

        // mozilla/firefox     

        window.sidebar.addPanel(title, url,"");    

    } else if( window.external ) {

        // IE        

        window.external.AddFavorite( url, title); 

    } else if(window.opera && window.print) {

        // Opera        

        var bookmark = document.createElement('a');

        bookmark.setAttribute('href',url);

        bookmark.setAttribute('title',title);

        bookmark.setAttribute('rel','sidebar');

        bookmark.click(); 

    } 

}

function UpdateClock(){
    //Update clock
    
    offset = clock.getNext().value.toInt();
    if(!offset && offset !== 0){
        return false;
    }
    
    var Now = new Date();
    //alert(Now.getUTCDate())
    var loc_offset = Now.getHours() - Now.getUTCHours();
    if(loc_offset < 0)
    	loc_offset += 24;
    	
    
    Now.setTime(Now.getTime() + (offset - loc_offset) * 1000 * 60 * 60);
    
    var InnerClock = clock.getElement('#tclock');
    
    InnerClock.set('html' , ZeroPad(Now.getHours()) + ":" + ZeroPad(Now.getMinutes()));

}
function ZeroPad(int_val){
    if (int_val < 10)
        return "0" + int_val;
    else
        return int_val;
}
