
/*******************************************************************************
 ******************************  commons  **************************************
 ******************************************************************************/


function isArray(obj) {
    if(obj.constructor.toString().indexOf("Array") == -1)return false;
    else return true;
}

function str_replace(search, replace, subject){
    if(isArray(subject)){
        return subject[0].replace(new RegExp(search,"gi"), replace);
    }else{
        return subject.replace(new RegExp(search,"g"), replace);
    }
}

function count(search, subject) {
    var i = 0;
    var pos = subject.indexOf(search);
    var result = subject.substring(0);
    do {
        if (pos == -1) {
            return i;
        }
        result = result.substring(pos + search.length);
        pos = result.indexOf(search);
        i++;
    } while (i > 0);
    return false;
}

function randString() {
	var chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
	var string_length = 10;
	var randomstring = '';
	for (var i=0; i<string_length; i++) {
		var rnum = Math.floor(Math.random() * chars.length);
		randomstring += chars.substring(rnum,rnum+1);
	}
	return randomstring;
}

/*******************************************************************************
 ******************************  admin section  ********************************
 ******************************************************************************/
jQuery(document).ready(function($j) {
    if($j("#replace-active-translation-table").length){
        $j("#replace-active-translation-table").replaceWith(function(){
            return $j.ajax({
                url: "index.php",
                type: "GET",
                data: {'module':'admin','u':'upt'},
                async:false
            }).responseText;
        });
    }


    var toggleRowHeight = $j(".toggleRowHeight").height();
    $j(".toggelebleTable").parent(".overview-content").toggle();
    $j(".table_section_table").toggle();
    $j(".table_section_content").toggle();
    $j("body").append('<div class="scroll-position-holder" style="display:none;" />');

    $j("td.header").find("img").css("cursor","pointer").click(function(){
        $j("form.high_access").toggle();
    });

    $j('input[name="allow_higher_edit"]').blur(function(){
        if($j(this).val()=="highaccess"){
            $j.ajax({
                url: "index.php",type: "GET",data: {'module':'admin','hh':"true"},
                success:function(){location.reload();}
            });
        }else{
            $j(this).css("border","1px solid red");
        }
    });

    $j(".toggleRowHeight").hover(
        function () {
            $j(this).css({
                "position":"absolute",
                "background-color":"#F9F8F6",
                "height":"auto",
                "z-index":"2",
                "max-height":"250px",
                "overflow":"auto"
            });
        },
        function () {
            $j(this).css({
                "position":"relative",
                "background-color":"white",
                "height":toggleRowHeight,
                "z-index":"0",
                "overflow":"hidden"
            });
        }
    );



    $j(".toggleVisibility").click(function(){
        var src = $j.ajax({url: "index.php"+$j(this).attr("href"),async:false}).responseText;
        $j(this).children("img").attr("src",src);
        return false;
    });
    
    $j("a.new_item").click(function(){
        var isn = '0';if($j(this).hasClass("newlabel")){isn = "1";}
        var response = $j.ajax({
            url: "index.php"+$j(this).attr("href")+'&isn='+isn,
            async:false
        }).responseText;

        if(response){
            $j(this).toggleClass("newlabel");
            if(response=="hide"){
                $j(this).parent().parent().find(".new_item").addClass("newlabel");
            }else if(response=="show"){
                $j(this).parent().parent().find(".new_item").removeClass("newlabel");
            }else{
                $j('body').append('<div style="color:red">'+response+'</div>');
            }
            $j(this).parent().parent().find(".overview-content").show();
            $j(this).siblings("a").children(".open").hide();
            $j(this).siblings("a").children(".close").show();
            return false;
        }else{
           $j(this).toggleClass("newlabel");
           if(isn==1){
                var has = $j(this).parents(".toggelebleTable").find(".newlabel").length;
                if(has==0){
                    $j(this).parents(".overview").find(".overview-right-corner-menu")
                    .find(".new_item").removeClass("newlabel");
                }
           }else{
               $j(this).parents(".overview").find(".overview-right-corner-menu")
               .find(".new_item").addClass("newlabel");
           }
            return false;
        }
    });

    $j(".deleteRow").click(function(){
        $j.ajax({url: "index.php"+$j(this).attr("href")});
        var has = $j(this).parents(".toggelebleTable").find(".newlabel").length;
        var total = $j(this).parents(".toggelebleTable").find(".toggleVisibility").length;

        var parent_title = $j(this).parents(".overview").find(".overview-title").text();
        if(total==1){
            parent_title = parent_title.split('( '+total+' )')[0];
        }else{
            parent_title = parent_title.split('( '+total+' )')[0]+'( '+(parseInt(total)-1)+' )';
        }        
        $j(this).parents(".overview").find(".overview-title").text(parent_title);

        if(has==1){
            $j(this).parents(".overview").find(".overview-right-corner-menu")
            .find(".new_item").removeClass("newlabel");
        }
        $j(this).parent().parent().remove();
        return false;
    });




    $j(".toggleTable").live("click",function(){
        $j(this).children().toggle();
        $j(this).parent().parent().find(".overview-content").toggle();
        $j(this).parent().parent().parent(".table_section").find(".table_section_content").toggle();
        $j(this).parent().parent().next("table").toggle();
        return false;
    });


    $j(".edit_translation_table").find(".row_section_select").live('change',function(){
        $j(".row_table_select").css("display","none");
        $j('select[name="tables__'+$j(this).val()+'"]').css("display","inline");
    });



    $j(".edit_translation_table").find('select[name="type"]').live('change',function(){
        if(parseInt($j(this).val())==2){
            $j(".section_select_holder").css("display","none");
            $j(".row_select_holder").css("display","none");
            $j(".section_name_holder").css("display","inline");
        }else if(parseInt($j(this).val())==1){
            $j(".section_select_holder").css("display","inline");
            $j(".row_select_holder").css("display","none");
            $j(".section_name_holder").css("display","inline");
        }else{
            $j(".section_select_holder").css("display","none");
            $j(".section_name_holder").css("display","none");
            $j(".row_select_holder").css("display","inline");
        }
    });


   
    $j(".update_gtt").live('click',function(){
        var name = $j(".edit_translation_table").find('input[name="name"]').val();
        var type = $j(".edit_translation_table").find('select[name="type"]').val();
        var pid = $j(".edit_translation_table").find('select[name="pid"]').val();
        var holder = $j(".edit_translation_table").find('input[name="holder"]').val();
        
        if(type==2){pid = 0;}

        if(type==3){
            if(holder==''){
                $j(".edit_translation_table").find('input[name="holder"]').css("border","solid 2px red");
                return false;
            }
            var section = $j(".edit_translation_table").find('select[name="row_section"]').val();
            pid = $j(".edit_translation_table").find('select[name="tables__'+section+'"]').val();
        }else{
            if(name==''){
                $j(".edit_translation_table").find('input[name="name"]').css("border","solid 2px red");
                return false;
            }
        }

        toggleState(false);
        $j(".update_gtt").find("img").css("display","block");
        $j(".update_gtt").children("a").css("display","none");

        var form = $j.ajax({
            url: "index.php"+$j(this).children("a").attr("href"),
            type: "GET",
            data: {
                'name':name,
                'type':type,
                'pid':pid,
                'description':$j(".edit_translation_table").find('input[name="description"]').val(),
                'et':$j(".edit_translation_table").find('input[name="et"]').val(),
                'en':$j(".edit_translation_table").find('input[name="en"]').val(),
                'holder':holder,
                'delete':$j(".edit_translation_table").find('input[name="delete"]').attr("checked")
            },
            async:false
        }).responseText;

        var update = $j.ajax({
            url: "index.php",
            type: "GET",
            data: {'module':'admin','u':'upt'},
            async:false
        }).responseText;

        $j("td.content").html(form+update);
        toggleState(true);
        window.scroll(0,$j(".scroll-position-holder").text());
        return false;
    });

    

    $j(".edit_section").live('click',function(){

       $j(".scroll-position-holder").text(window.pageYOffset);
       
       $j(this).children().toggle();
       var url = $j(this).attr("href");

       if($j(this).children("img").css("display")=="none"){
           url = url.split("id=")[0]+"id=0";
       }else{
           window.scroll(0,0);
           $j(".edit_section").children().each(function(){
               if($j(this).hasClass("cancel")){
                    $j(this).hide();
               }else{
                   $j(this).show();
               }
           });
           $j(this).children().toggle();
       }
       var form = $j.ajax({async:false,url: "index.php"+url}).responseText;
       $j(".edit_translation_table").replaceWith(form);
       return false;
    });


   $j("td.toggle_move > a.reload_region").live("click",function(){
        var newpos=0;
        if($j(this).parent().hasClass("move_up")){ newpos = 2;}
        $j.ajax({async:false,url: $j(this).attr("href")});
        var current = $j(this).parents(".movable_row").index();
        var from_move_up    = $j(".movable_row").eq(current-newpos).find(".move_up").html();
        var from_move_down  = $j(".movable_row").eq(current-newpos).find(".move_down").html();
        var to_move_up      = $j(".movable_row").eq(current-1).find(".move_up").html();
        var to_move_down    = $j(".movable_row").eq(current-1).find(".move_down").html();
        $j(".movable_row").eq(current-newpos).find(".move_up").html(to_move_up);
        $j(".movable_row").eq(current-newpos).find(".move_down").html(to_move_down);
        $j(".movable_row").eq(current-1).find(".move_up").html(from_move_up);
        $j(".movable_row").eq(current-1).find(".move_down").html(from_move_down);
        var from = $j(".movable_row").eq(current-newpos).html();
        var to = $j(".movable_row").eq(current-1).html();
        $j(".movable_row").eq(current-1).html(from);
        $j(".movable_row").eq(current-newpos).html(to);
        colorRegionTable();
        return false;
   });

    $j(".toggle_visibility > a.reload_region").live("click",function(){
        var regions_response = $j.ajax({async:false,url: $j(this).attr("href")}).responseText;
        regions_response = regions_response.split("__");
        $j(this).attr("href",str_replace(regions_response[0],regions_response[1],$j(this).attr("href")));
        $j(this).children("img").attr("src",regions_response[2]);
        colorRegionTable();
        return false;
    });


    $j(".delete_row > a.reload_region").live("click",function(){
        var img = $j(this).children("img").attr("src");
        img = img.split("/images/")[0];
        var base = img;
        img = img+'/images/updater.gif'
        $j(this).children("img").attr("src",img);
        if(!confirm ('Are you sure you want to delete this?')){
            $j(this).children("img").attr("src",base+"/images/delete.jpg");
            return false;
        }
        setTimeout('var regions_table = $j.ajax({async:false,url: "'+$j(this).attr("href")+'"}).responseText;$j(".replace-region-target").replaceWith(regions_table); ($$("span.editable_small")).each(function (A) { new EditableText(A) }); colorRegionTable();',10);
        return false;
    });


    if($j("#kuulutused").find("#edid_pictures").length){
        $j("#kuulutused").find("#edid_pictures").find("div.frame").find("a").live("click",function(){
            return false;
        });
    }

    $j("#house_type_select").live("change",function(){
        $j("#space_type_reloader").show();
        $j(this).removeClass("append_style_select");
        $j.ajax({
            type: "GET",
            url: $j(this).attr("class")+$j(this).val(),
            success: function(html){
                $j("#space_type_select").html(html);
                $j("#space_type_reloader").hide();
                append_style_select($j("#space_type_select"));
            }
        });
        $j(this).addClass("append_style_select");
    });

    $j("#time_from_select").live("change",function(){
        $j("#time_from_reloader").show();
        $j(this).removeClass("append_style_select joint_select");
        $j.ajax({
            type: "GET",
            url: $j(this).attr("class"),
            data:{
                'time[from]':$j(this).val(),
                'time[to]': $j("#time_to_select").val()
            },
            success: function(html){
                $j("#time_to_select").html(html);
                $j("#time_from_reloader").hide();
                append_style_select($j("#time_to_select"));
            }
        });
        $j(this).addClass("append_style_select joint_select");
    }); 

    $j(".append_style_select").live("change",function(){
        append_style_select($j(this));
    }).each(function(){
        append_style_select($j(this));
    });

   $j(".time_from_to_holder").hover(function(){
        $j(this).children(".append_style_select_conteiner").css("background-color","transparent");
    },function(){
        $j(this).children(".append_style_select_conteiner").css("background-color","white");
    });


    $j(".init_get_google_maps").each(function(){
        $j.ajax({
            type: "GET",
            url: $j(this).attr("href"),
            success: function(html){
                $j("#mapvr2").parent().append(html);
            }
        });
    });
    $j(".quick_edit_status").click(function(){
        $j(this).attr("href",$j.ajax({
            type: "GET",
            url: $j(this).attr("href"),
            async:false
        }).responseText);
        $j(this).toggleClass("active");
        return false;
    });




    if (!$j.browser.msie) {
        $j(".highlight_editable_dropdown").live('mouseover mouseout', function(event) {
            if (event.type == 'mouseover'){
                $j(this).css({"background-color":"#FFFAAA"});
            }else{
                $j(this).css({"background-color":"#FFFFFF"});
            }
        }).css({"border":"0","cursor":"pointer"});
    }

    $j("#region_dropdown_editable").live('change',function(){
        new Ajax.Request(new String(document.location), {
            method: "post",
            parameters: {
                request_method: "ajax",
                type: "admin_set",
                data: Object.toJSON({
                    id: "dp_region",
                    value : $j(this).val()
                })
            }
        });
    });
    
    $j("#type_dropdown_editable").live('change',function(){
        new Ajax.Request(new String(document.location), {
            method: "post",
            parameters: {
                request_method: "ajax",
                type: "admin_set",
                data: Object.toJSON({
                    id: "dp_type",
                    value : $j(this).val()
                })
            }
        });
        hide_hiddable_space_types();
    });

    $j(".adjust_AOP_map").click(function(){
        var rand_id = randString();
        $j("body").prepend('<iframe id="'+rand_id+'"></iframe>');
        $j("#"+rand_id).attr("src",$j(this).attr("href"));
        $j("#"+rand_id).css({'width':'1px','height':'1px','display':'none'});
        $j(this).remove();
        return false;
    });

    $j(".front_editable").live('change',function(){
       $j(this).removeClass("front_editable");
       new Ajax.Request(new String($j(this).parents("tr.project").find("a.project_link_url").attr("href")),{
            method: "post",
            parameters: {
                request_method: "ajax",
                type: "admin_set",
                data: Object.toJSON({
                    id: $j(this).attr("class"),
                    value : $j(this).val()
                })
            }
        });
        $j(this).addClass("front_editable");
    });

    $j(".wordcut_editable").each(function(){
        $j(this).html(insertWordBreak($j(this).html(),35)).addClass("click_active");
    }).click(function(){
        if($j(this).hasClass("click_active")){
            $j(this).removeClass("click_active");
            $j(this).find(".word_break").remove();
            $j(this).html('<input type="text" value="'+$j(this).html()+'" />');
            if(typeof resetIcon == 'function'){
                $j(this).find("input").unbind("change.resetIcon").bind("change.resetIcon",resetIcon);
            }
            $j(this).find("input").focus().focusout(function(){
                var content = $j(this).val();
                new Ajax.Request(new String(document.location), {
                    method: "post",
                    parameters: {
                        request_method: "ajax",
                        type: "admin_set",
                        data: Object.toJSON({
                            id: $j(this).parent().attr("id"),
                            value : content
                        })
                    }
                });
                $j(this).parent().html(insertWordBreak(content,35)).addClass("click_active");
            });
        }
    });

    $j(".active_parent_click").click(function(){
        setTimeout('window.location="'+$j(this).parent().attr('href')+'"',0);
    });

    $j(".update_title").keyup(function(){
        $j(this).parents(".table_section").find(".overview-title").text($j(this).val());
    });


    $j(".validate_as_int").keyup(function(){     $j(this).val($j(this).val().replace(new RegExp("[^0-9]"), ""))    });

    $j(".deny_high_access_change").each(function(){
        if($j(this).attr('disabled')){
            $j(this).removeAttr('disabled').css("background-color","#d4d0c7");
            var module = $j(this).val();
            $j(this).bind('keyup focusout',function(){ $j(this).val(module); });
        }
    });


    blink($j(".click_to_edit_holder"),1000);
    blink($j(".click_to_edit_holder"),5000);
    blink($j(".click_to_edit_holder"),10000);

    if(window.bind_get_comments && $j(".init_load_comments").length) {  bind_get_comments(); }
    hide_hiddable_space_types();
    colorRegionTable();
    
    bind_on_completion_time_change();
    
    if(typeof reloadDisable == 'function'){ reloadDisable(); }
});

function bind_on_completion_time_change(){
    if($j("#content_dp_completion_time").next('select').attr("class")=="editable"){
        $j("#content_dp_completion_time").next('select').change(function(){
            change_rating_map('by_completion',$j(this).val());
        });
    }else{
        setTimeout('bind_on_completion_time_change();',200);
    }
}


function insertWordBreak(content,len){
    if(content.length>len){
        var prefix = content.substr(0,len) + "<span class='word_break'><br /></span>";
        content = prefix + insertWordBreak(content.substr(len),len);
    }
    return content;
}

function hide_hiddable_space_types(){
    var value = $j("#type_dropdown_editable").val();    
    switch(value){
        case "-1": // none
            $j("#flats_hiddable_row").hide();
            $j("#offices_hiddable_row").hide();
            $j("#retail_hiddable_row").hide();
            $j("#accomodation_hiddable_row").hide();
            $j("#venues_hiddable_row").hide();
            break;
        case  "1": // residential
            $j("#flats_hiddable_row").show();
            $j("#offices_hiddable_row").hide();
            $j("#retail_hiddable_row").hide();
            $j("#accomodation_hiddable_row").hide();
            $j("#venues_hiddable_row").hide();
            break;
        case  "2":// commercial
            $j("#flats_hiddable_row").hide();
            $j("#offices_hiddable_row").show();
            $j("#retail_hiddable_row").show();
            $j("#accomodation_hiddable_row").show();
            $j("#venues_hiddable_row").show();
            break;
        case  "3": // mix
            $j("#flats_hiddable_row").show();
            $j("#offices_hiddable_row").show();
            $j("#retail_hiddable_row").show();
            $j("#accomodation_hiddable_row").show();
            $j("#venues_hiddable_row").show();
            break;
        case "32":
            $j("#flats_hiddable_row").hide();
            $j("#offices_hiddable_row").hide();
            $j("#retail_hiddable_row").show();
            $j("#accomodation_hiddable_row").hide();
            $j("#venues_hiddable_row").show();
            break;
    }
}

function append_style_select(obj){
    obj.hide();
    var container = obj.attr("id")+"__container";
    $j("#"+container).remove();
    obj.after('<div id="'+container+'" />');
    container = $j("#"+container);
    container.addClass("append_style_select_conteiner");
    if(obj.hasClass("joint_select")){container.addClass("joint_select");}
    if(obj.attr("id")=="time_to_select"){
        container.append('<div class="selected" /><div style="margin-left:-109px !important;" class="values" />');
    }else{
        container.append('<div class="selected" /><div class="values" />');
    }

    var multi = false;
    if(obj.attr("multiple")){
        multi = true;
        type='type="checkbox"'
    }else{
        var type= 'name="'+obj.attr("id")+'__name" type="radio"';
    }

    var click_status = true;

    container.find(".values").hover(function(){
        click_status = false;
    },function(){
        click_status = true;
    });

    container.find(".selected").hover(function(){
        click_status = true;
    });

    container.find(".selected").bind("click",function(){
        if(container.find(".values").css("display")=="none"){
            container.find(".values").show();
            click_status = false;
            $j("html").bind("click.active_trigger",function(){
                if(click_status){
                    append_style_select_submit(obj);                    
                }
            });            
        }
    });

    var options = '';
    obj.children("option").each(function(){
        options = options + '<label for="'+obj.attr("id")+'__'+$j(this).attr("value")+'__label">'+$j(this).text()+'</label><input class="append_style_select_trigger" '+type+' id="'+obj.attr("id")+'__'+$j(this).attr("value")+'__label" value="'+$j(this).attr("value")+'" /><br />';
    });
    container.find(".values").html(options);

    var current = '';
    obj.find("option:selected").each(function(i){
        if($j(this).text()){
            current = current+$j(this).text()+', ';
            container.find('#'+obj.attr("id")+'__'+$j(this).attr("value")+'__label').attr("checked","checked");
        }
    });
    if(current){    current = current.substr(0,current.length-2);   }
    container.find(".selected").html(current);

    container.find(".values").find("label").hover(function(){
        if(!$j("#"+$j(this).attr("for")).attr("checked")){
            $j(this).removeClass("hoverout").addClass("hoverin");
        }
    },function(){
        if(!$j("#"+$j(this).attr("for")).attr("checked")){
            $j(this).removeClass("hoverin").addClass("hoverout");
        }
    }).click(function(){
        if($j("#"+$j(this).attr("for")).attr("checked")){
            if(multi){
                $j(this).removeClass("active").addClass("hoverin");
                if(!$j.browser.msie){
                    //$j("#"+$j(this).attr("for")).attr("checked",false);
                }
            }
        }else{
            if(!multi){
                container.find(".values").find("input").removeAttr("checked");
                container.find(".values").find("label").removeClass("active hoverin").addClass("hoverout");
                $j('#'+$j(this).attr("for")).attr("checked","checked");
            }else{
                if (!$j.browser.msie){
                    //$j("#"+$j(this).attr("for")).attr("checked",true);
                }
            }

            $j(this).removeClass("hoverout hoverin").addClass("active");           
            if(!multi){
                append_style_select_submit(obj);
            }
        }
    });

    container.find(".values").find("input").each(function(){
        if($j(this).attr("checked")){
            $j('label[for="'+$j(this).attr("id")+'"]').addClass("active");
        }
    });  
}
function append_style_select_submit(obj){
    $j("html").unbind("click.active_trigger");
    var container = obj.attr("id")+"__container";
    container = $j("#"+container);
    var old_values = obj.val();
    if(old_values==null){old_values=0;}    
    obj.find("option").removeAttr("selected");
    var selects = new Array();
    container.find(".values").find("input").each(function(i){
        if($j(this).attr("checked")){
            selects[i] = $j(this).val()
        }
    });
    obj.val(selects).attr("selected",true);
    container.find(".values").hide();
    var new_values = obj.val();
    if(new_values==null){new_values=0;}
    if(old_values != new_values){
        obj.trigger("change");
    }
    $j(".time_from_to_holder").children(".append_style_select_conteiner").css("background-color","white");
}


function blink(obj, time){
    setTimeout(function(){obj.fadeIn(300, function(){$j(this).fadeOut(300, function(){$j(this).fadeIn(300, function(){$j(this).fadeOut(300);});});});},time);
}


var tState = new Array();
function toggleState(toggle){
   if(toggle){
       $j(".table_section_content").hide();
       $j(".toggleTable").each(function(){
            var id = $j(this).parent().find(".edit_section").attr("href").split("id=")[1];
            if(tState[id]=='open'){
                $j(this).children().hide();
                $j(this).children(".open").show();
                $j(this).parent().parent(".section-header").next(".table_section_content").hide();
                $j(this).parent().parent(".table-header").next(".table_section_table").hide();
            }else if(tState[id]=='close'){
                $j(this).children().hide();
                $j(this).children(".close").show();
                $j(this).parent().parent(".section-header").next(".table_section_content").show();
                $j(this).parent().parent(".table-header").next(".table_section_table").show();
            }
       });
   }else{
       $j(".toggleTable").each(function(){
            var id = $j(this).parent().find(".edit_section").attr("href").split("id=")[1];
            var status = 'close';
            if($j(this).children(".close").css("display")=='none'){
                status = 'open';
            }
            tState[id] = status;
       });
   }
}



function colorRegionTable(){
   var even = "#ffffff";
   var odd = "#e5e5e5";
   var tag = "#686868";   
   $j.each($j(".movable_row"),function(index){
        if(index%2){
            $j(this).css({"color":"black","font-weight":"normal"});
            $j(this).children("td").eq(0).css("background-color",even);
            $j(this).children("td").eq(1).css("background-color",even);
            $j(this).children("td").eq(2).css("border","solid 1px "+even);
        }else{
            $j(this).css({"color":"black","font-weight":"normal"});
            $j(this).children("td").eq(0).css("background-color",odd);
            $j(this).children("td").eq(1).css("background-color",odd);
            $j(this).children("td").eq(2).css("border","solid 1px "+odd);
        }
        if(count('/images/tag.jpg',$j(this).html())){
            $j(this).css({"color":"white","font-weight":"bold"});
            $j(this).children("td").eq(0).css("background-color",tag);
            $j(this).children("td").eq(1).css("background-color",tag);
            $j(this).children("td").eq(2).css("border","solid 1px "+tag);
        }
   });
}


