$ = jQuery.noConflict();


parseQuery = function(query) {
   var Params = new Object() ;
   if (!query) return Params; 
   if (query.search("&")>0){
       var Pairs = query.split(/[;&]/);
       str_arr = "";
       for ( var i = 0; i < Pairs.length; i++ ) {
          var KeyVal = Pairs[i].split('=');
          if ( ! KeyVal || KeyVal.length != 2 ) continue;
          var key = unescape( KeyVal[0] );
          var val = unescape( KeyVal[1] );
          val = val.replace(/\+/g, ' ');
          if (key=='class') key='class_name'; 
          eval( "Params."+key+" = '"+val+"'");
         // Params[key] = val;
       }
   }else if(query.search("/")>0){
       var Pairs = query.split("/");
       for ( var i = 0; i < Pairs.length; i++ ) {
          var key = unescape( Pairs[i] );
          var val = unescape( Pairs[i+1] );
          if (key=='class') key='class_name'; 
          eval("Params."+key+" = '"+val+"'");
         // Params[key] = val;
          i++;
       }
   }
   return Params;
}  

parseUrl = function(query) {
   var p = new Array ();
   if (!query) return p; 
   p = query.split("?");
   if (p.length==1 && query.search(".php/")> 0){
        p = query.split(".php/");
        p[0]=p[0]+".php"
   }
    return p;
}



//---  country
function updateSelect(form, psCriteria,poSelect) {
  reg = $(poSelect).attr("name");
  $("select#"+reg).empty().append('<option value="0">Loading in progress...</option>').attr('disabled', 'disabled');
    $.get("/lib/ajax/country.php", 
          {"country_id":psCriteria},
          function(data){
            $("select#"+reg).empty().append(decodeURIComponent(data)).attr('disabled', '');
          }
    )
}

function getUserRegion(psCriteria, poSelect) {
    $(poSelect).empty().append('<option value="0">Loading in progress...</option>').attr('disabled', 'disabled');
    $.get("/lib/ajax/get_shipping_methods.php", 
          {country_id: psCriteria, 
           region: $(poSelect).val(), 
           get_region: true
           },
          function(data){
             $(poSelect).empty().append(decodeURIComponent(data)).attr('disabled', '');
          }
    )
}

//---  country



//---- Ibox   
   var imgLoader = '<table height="100%" align="center" ><tr><td><img id="loader" src="/images/admin/loading.gif" alt="Loading..." /></td></tr></table>';
 	$(function() {
    	$.fx.speeds._default = 1000;

	   init_ibox();
        
      $('<div id="dialog" title="" style="overflow:auto" ></div>').appendTo("body");
		$('#dialog').dialog({
			autoOpen: false,
            dragStart : 
                function(){ 
                $("iframe").each(function() {
                  $('<div class="ui-resizable-iframeFix" style="background: #fff;"></div>')
                  .css({
                        width: this.offsetWidth+"px", height: this.offsetHeight+"px",
                        left:  this.offsetLeft+"px", top: this.offsetTop+"px",
                        position: "absolute", opacity: '0.0001', zIndex: 1000
                      })
                  .insertAfter($(this));
                  
                  })
            },
            dragStop: function(){
                    $("div.ui-resizable-iframeFix").each(function() { this.parentNode.removeChild(this); });
            },                        
            
            resizeStart : 
                function(){ 
                $("iframe").each(function() {
                  $('<div class="ui-resizable-iframeFix" style="background: #fff;"></div>')
                  .css({
                        width: this.offsetWidth+"px", height: this.offsetHeight+"px",
                        left:  this.offsetLeft+"px", top: this.offsetTop+"px",
                        position: "absolute", opacity: '0.0001', zIndex: 1000
                      })
                  .insertAfter($(this));
                  
                  })
            },
            resizeStop: function(){
                    $("div.ui-resizable-iframeFix").each(function() { this.parentNode.removeChild(this); });
            }                        
            
        });            
	});

init_ibox = function(){
   $("a[rel^='ibox']").unbind('click').bind('click',function(){
     showIbox(this);
     return false;
   });  
}
   
   
   
showIbox = function (el) {   
    var params = new Array();
    var ibox_type = 0;
    var url,title ;
       
    if ($(el).attr('target')!=''){
        url = $(el).attr('target');
    }else{
        url = $(el).attr('href');
    }
     title  = $(el).attr('title');
     params = parseQuery($(el).attr('rel').substr(5,999)); 
     if (params['title']){
        title = params['title'];
     }
     if (params['type']){
         params['type'] = parseInt(params['type']);   
     }else{    
	    var urlString = /\.jpg|\.JPG|\.JPEG|\.jpeg|\.png|\.gif|\.GIF|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.rhtml|\.txt/g;

	    var urlType = url.match(urlString);
	    if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.JPG' || urlType == '.JPEG' || urlType == '.png' || urlType == '.gif' || urlType == '.GIF'){
		    ibox_type = 1;
	    } else if(urlType=='.htm'||urlType=='.html'||urlType=='.php'||
			     urlType=='.asp'||urlType=='.aspx'||urlType=='.jsp'||
			     urlType=='.jst'||urlType=='.rb'||urlType=='.txt'||urlType=='.rhtml'||
			     urlType=='.cfm') {
		    ibox_type = 3;
	    }     
        params['type'] = parseInt(ibox_type);
     }

    showIboxContent(url,title,params);
}   
   
showIboxContent = function (content,title,params) {
        var myIbox = $("#dialog");
        if (myIbox.dialog( "isOpen" ))
            myIbox.dialog( "close" );
        
        params['type'] = (params['type']) ? params['type'] : 3;
        params['title'] = (params['title']) ? params['title'] : title;
        params['modal'] = (params['modal']) ? params['modal'] : false;
        params['width'] =  (params['width']) ? (parseInt(params['width'] )+ ((params['width'].search('%')>-1)  ? '%' : 0 )):150 ;
        params['height'] = (params['height'])? (parseInt(params['height'])+ ((params['height'].search('%')>-1) ? 500 : 0 )):170 ;

        if (params['type']=='1'){
            img_src = content;
            params['modal'] = (params['modal']) ? params['modal'] : true; 
            content = imgLoader;
        }

        if (params['type']=='2'){
            if( content.substr(0,1)=="#"){
                content =$(content).html(); 
            }
        }

        if (params['type']=='3'){
            content = '<iframe src="'+content+'" height="100%" width="100%" style="border: 0;" frameborder="0"></iframe>'; 
        }
        if (params['type']=='4'){
           $('#dialog').load(content);
           content = imgLoader;
        }
        
        for(var i in params){
            $(myIbox).dialog("option",i,params[i]);
        }
     
        if (content) {
            $(myIbox).html(content);
        }
        
        $(myIbox).dialog("open");
          
        if (params['type']=='1'){
             img_tmp = new Image();
  		       $(img_tmp).load(function(){
             
	                var ix = img_tmp.width;
                   var iy = img_tmp.height

  	                var docElem = document.documentElement
	                var x = self.innerWidth || (docElem&&docElem.clientWidth) || document.body.clientWidth - 150;
	                var y = self.innerHeight || (docElem&&docElem.clientHeight) || document.body.clientHeight- 150;
	                if(ix > x) { 
		                iy = iy * (x/ix); 
		                ix = x; 
		                if(iy > y) { 
			                ix = ix * (y/iy); 
			                iy = y; 
		                }
	                } 
	                else if(iy > y) { 
		                ix = ix * (y/iy); 
		                iy = y; 
		                if(ix > x) { 
			                iy = iy * (x/ix); 
			                ix = x;
		                }
	                }
                             
                    $("#dialog")
				            .dialog("option","width", 30+parseInt(ix))
				            .dialog("option","height", 60+ parseInt(iy))
                        .dialog( "option", "position", "center" );
			            $("#loader").attr('src',img_src);
                   })
                   .attr("src",img_src);
        }  
        
        return true;    
    }
    
    
hideIbox = function hideIbox() {
        $("#dialog").dialog( "close" );
    }
    
//---- Ibox   



//---- Form 

//--- check  
  $(document).ready(function() {
    $("*[rel^='info']")
        .each(function() {
            if ($(this).val()==""){
                var vl = decodeURIComponent($(this).attr("rel").substr(5,999)); 
                $(this).val(vl).unbind("click").bind("click",function(){
                        $(this).css("color","#000000")
                        $(this).val("").unbind("click");
                    });
            }
       });
    });       
  


var captcha_check=true;
var security_code_invalid = "Invalid Security Code";
function setFocus(el){
   $(el).addClass("state-highlight").focus();
	setTimeout(function() {$(el).removeClass("state-highlight", 1500);}, 500);
}

function check(form_element, check) {
  var regNumeric = /^[\-0-9\.]{1,}$/;
  var regEmail   = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  var regUrl     = /(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp):\/\/)|(www\.))*(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(\/[a-zA-Z0-9\&amp;%_\.\/-~-]*)?/;
  var regArray = {"required":"", "numeric":regNumeric, "email":regEmail, "url":regUrl,"min":"","max":"","length_min":"","security_code":""};
  var chBoxArray = new Array();
  
  form_num = form_element.length; 
  for(i=0; i<form_num; i++) {
    var name = form_element[i].name;
    var value = form_element[i].value;
    var check_name = check[name];

    var el = $(form_element[i]); 
    s_info = el.attr('rel');
    if (s_info && s_info.substr(0, 4)=='info'){
       vl = (s_info.substr(5,999));
       if (vl==encodeURIComponent(value) ) {
        value='';
        el.val('');
       }
    };
    
    if(check_name) {

      for(var ck in check_name) {
        if(check_name[ck]) {
          if(!value && ck=="required") {
            jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(ck=="max" && value>parseFloat(check_name[ck])) {
            jAlert("Maximum Value "+ check_name[ck],"Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(ck=="min" && value<parseFloat(check_name[ck])) {
            jAlert("Minimum Value "+ check_name[ck],"Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(ck=="length_min" && value.length<parseInt(check_name[ck])) {
            jAlert(check_name["required"]+" ("+value.length+")","Alert",function(){setFocus(form_element[i])});
            return false;
          }
          else if(value) {
            if(regCheck = regArray[ck]) {
              if(regCheck.exec(value) == null) {
                jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
                return false;
              }
            }
          }
          
          if(ck == "required" && form_element[i].type=="checkbox" &&  form_element[i].checked==false) {
              jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
              return false;
           }

          if(ck == "required" && form_element[i].type == "radio") {
            j = i; selected = false;
            while(form_element[i].type == "radio" && form_element[i].name == name) {
              if(form_element[i].checked) selected = true;
              i++;
            }
            i--
            if(!selected) {
              jAlert(check_name[ck],"Alert",function(){setFocus(form_element[i])});
              return false;
            }
          }
          
        }
      }
    }
//--- step1 fields[] -> array  or checkBox
    pos=name.search(String.fromCharCode(93));
    if (pos>0 ){
        var name_c= name.substr(0, pos-2);
        var check_name = check[name_c];
        if(check_name) {
          for(var ck in check_name) {
              if(check_name[ck] && ck=="required") {
                 if ( typeof(chBoxArray[name_c])=="undefined") {
                    chBoxArray[name_c] = '"'+i+'"';
                 }else{ chBoxArray[name_c] = chBoxArray[name_c]+' , "'+ i+'"'; }
            }
          }    
        }
    }
//---    
  }

//--- step2 fields[] -> array  or checkBox
 for(var ck in chBoxArray) {
    eval("var chBox = new Array("+chBoxArray[ck]+");");
    selected =0; 
    for(var i in chBox) {
        if(form_element[chBox[i]].type=="checkbox" && form_element[chBox[i]].checked) selected ++;
        if(form_element[chBox[i]].type=="text" && form_element[chBox[i]].value>'') selected ++;
    }
    if (typeof(check[ck]["check_element"])=="undefined") {n_sel=1;}else{n_sel=check[ck]["check_element"]}
    
    if(selected<n_sel) {
       br = 0; 
       for(var i in chBox) {
            if(form_element[chBox[i]].type=="checkbox" && form_element[chBox[i]].checked==false) br = 1;
            if(form_element[chBox[i]].type=="text" && form_element[chBox[i]].value=='') br = 1;
            if(br==1){
                jAlert(check[ck]["required"],"Alert",function(){setFocus(form_element[chBox[i]])});
                break;
            }
       }
        
      return false;
    }
  }
//---    
  
//---  validate security_code 
     if ( captcha_check ){
        vl = $(form_element).find("#security_code").val();
        sr = $(form_element).find("#img_security_code").attr("src");
        if ( vl>'' && sr >''){
            rt = false; 
            $.ajax({
              async: false,   
              type: "GET",
              url: sr,
              data:{code:vl},
              success:function(data) { 
                    if (data=="invalid") {
                        rt = false;
                        reloadSecurityCode($(form_element).find("#img_security_code"));
                        jAlert(security_code_invalid,"Alert",function(){setFocus($(form_element).find("#security_code"))});
                    }else{
                        rt = true;
                    }
                },
              error: function (data, status, e){jAlert(e,"Error"); captcha_check=false; rt = true;} 
              }); 
              return rt;
        }     
    }
  
  
  return true;
}


function reloadSecurityCode(el) {
   var src = $(el).attr("src");
   var date = new Date();
   src = src.replace(/v=(.*?)\&/gi, "v="+date.getTime()+"&");
  $(el).attr("src", src) ;
   return false;
}

//--- check 
//--- clear
function f_formClear(form_id){
  $('#'+form_id+' input,select').each(function(){
        var t = this.type, tag = this.tagName.toLowerCase();
        if ($(this).attr("readonly")== true) return 
        if ($(this).attr("disabled")== true) return 
        if (t == 'text' || t == 'password' || tag == 'textarea')
            this.value = '';
        else if (t == 'checkbox' || t == 'radio')
            this.checked = false;
        else if (tag == 'select')
            this.selectedIndex = -1;
  });
  return true;
}

//--- clear

//---- Form  
$(function(){
    init_admin_list_ajax("content");
  
//init_admin_list_ajax("elements");
})


// ---  ADMIN ---
// admin list ajax

function getElements(link, div_id) {
    id_content = 'elements'+ ((div_id)?('_' + div_id):'');
        
    params = parseUrl(link);

    if(!params[1])
        params[1] = '';
    pr = parseQuery(params[1]); 
    $.get(params[0], pr,
    function(data){
        $("div[id^=elements]").each(function(){
          $(this).html('');
        })
        $('#'+id_content).html($(data));
        init_admin_list_ajax(id_content);
        init_ibox();
     });
     

}

init_admin_list_ajax = function(div) {
   
   if($("table[rel='disable_ajax_reload']").size() > 0)
      return true;
      
   if (typeof(div)=='object')
     var id_content = $(div).attr('id');
   else if (typeof(div)=='string')
     var id_content = div;

    $(" a[rel^='admin_list_ajax']", "#" + id_content)
    .each(function() {
        el = $(this);
        var f_click = el.attr('onClick') ;
        el.attr('rel',el.attr('href')).attr('href','javascript:void(0)').removeAttr('onClick').unbind('click').bind('click',function(){
          
          if (f_click>''){
            eval(f_click);
            if (r==false) return false;
          }
          params = parseUrl($(this).attr('rel'));
          if(!params[1])
            params[1] = '';
         
         pr = parseQuery(params[1]); 
          $.get('/admin/admin-list-ajax.php',pr,
            function(data){
             $('#'+id_content).html(data);
             init_admin_list_ajax(id_content);
          //   init_ibox();
          });
        });
    });

    $("#" + id_content + " form").each(function() {

        if ($(this).attr("method").toUpperCase()=='GET'){
            f_id = $(this).attr("id"); 
            $(this).find("select").each(function() { 
                 $(this).unbind('change').bind('change',function(){
                    el_f = $("#"+f_id);
                    a = $(el_f).formSerialize();
                    params = parseUrl($(el_f).attr("action"));
                    if(!params[1])
                        params[1] = "";
                    params[1] =  a+ "&"+params[1];
                    pr = parseQuery(params[1]); 

                    $.get('/admin/admin-list-ajax.php',pr,
                    function(data){
                        $('#'+id_content).html(data);
                         init_admin_list_ajax(id_content);
                      //   init_ibox();
                     //    dragtable.init();
                      });
                 });
            });
 
 
            $(this).submit(function(){
              var options = {
                url: '/admin/admin-list-ajax.php',
                target: $('#'+id_content),
                success: function(responseText) {init_admin_list_ajax(id_content);}
              };
              $(this).ajaxSubmit(options);
              return false;
            });




      }
     });
     
    $("#" + id_content + " ul.pageTab a[href*=admin]").each(function() {   
        el = $(this);
        el.attr('rel',el.attr('href')).attr('href','javascript:void(0)').unbind('click').bind('click',function(){
          params = parseUrl($(this).attr('rel'));
          if(!params[1])
            params[1] = '';
          pr = parseQuery(params[1]);                
          $.get('/admin/admin-list-ajax.php',pr,
            function(data){
             $('#'+id_content).html(data);
             init_admin_list_ajax(id_content);
             
          });
        });
    });
    
    init_ibox();
    dragtable.init();  
    resizeColumnInit();
    
    return true; 
};



// --- tree
 //   $(function() {
 //       $("body").click(function() { 
 //          showOtherActionDiv('','')
 //        });    
 //   });

function showOtherActionDiv(elem, id){   
   $("div.other_action_div").each(function(){
      if($(this).attr('id') != 'other_action_' + id) 
         $(this).hide();
   });
   if (id>""){
       leftPos = $(elem).position().left-$("div#other_action_" + id).width();
       $("div#other_action_" + id)
          .css('left', leftPos + 'px')
          .slideToggle("normal")
   }
}

function showFldDiv(elem, id){   
   $("div.show_fld_div").each(function(){
      if($(this).attr('id') != 'show_fld_div_' + id) 
         $(this).hide();
   });
   if (id>""){
       leftPos = $(elem).position().left-$("div#show_fld_div_" + id).width();
       $("div#show_fld_div_" + id)
          .css('left', leftPos + 'px')
          .slideToggle("fast")
   }
}

function toggleTblColumn(tbl, column){
   column = column + 1;
   var elem = $('td:nth-child(' + column + '), th:nth-child(' + column + ')', $(tbl))[0];
   
   if(elem.style.display == 'none')
      $('td:nth-child(' + column + '), th:nth-child(' + column + ')', $(tbl)).show();
   else
      $('td:nth-child(' + column + '), th:nth-child(' + column + ')', $(tbl)).hide();                       
}

// ---  ADMIN ---


