/*
 * jQuery Data Retrieve Plugin
 * version: 1.00 (17-OCT-2008)
 * @requires jQuery v1.2.6 or later
 *
 * Dual licensed under the MIT licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Revision: $Id$
 */

function getJSONData(url){
  jQuery.post(url,
     function(data){
        var jsondata = jQuery.evalJSON(data);
        pageInfoRetrieve(jsondata);
        pageActionRetrieve(jsondata);
        tablelistRetrieve(jsondata);
        tablerowRetrieve(jsondata);
  });

}

function setData(data){
        pageInfoRetrieve(data);
        pageActionRetrieve(data);
        tablelistRetrieve(data);
        tablerowRetrieve(data);
}


function pageInfoRetrieve(data){
        //redirect
        try{
           if (data.pageInfo.redirect)
              location.href=data.pageInfo.redirect.value;
        }
        catch(e){}

        try{
           jQuery.each(data.pageInfo, function(key,value){
              try{
                 //jQuery("[@name="+key+"]").each( function() {

//alert(key+" "+value);

                    if (value['type']=="radio") {
                       jQuery.each(value['keypair'], function(key1,value1){

                          jQuery("#"+key).append("<input type='radio' name='"+key+"' id='"+key1+"' value='"+key1+"'> "+value1["value"]);

                          if (key1==value['value']){
                             jQuery("#"+key1).attr("checked",true);
                          }
                       })

                    }

                    else if (value['type']=="checkbox") {
                       var i=0;

                       var $str="<table><tr>";

                       jQuery.each(value['keypair'], function(key1,value1){
//alert(value['numrow']+" "+i+" "+i%value['numrow']);


                          if (i%value['numrow']==0){
                             $str+="</tr><tr>"
                          }

                          $str+="<td><input type='checkbox' name='"+key+"[]' id='"+key1+"' value='"+key1+"'> "+value1["value"]+"</td>";
                          i++;
                       });

                       jQuery("#"+key).append($str+"</tr></table>");


                       var arrStr=(value['value']).split(",");
                       jQuery.each(arrStr, function(key1,value1){
                          jQuery("#"+value1).attr("checked",true);
                       });

                    }


                    else if (value['type']=="select") {
                       jQuery.each(value['keypair'], function(key1,value1){
                          jQuery("#"+key).append("<option value='"+key1+"'>"+value1["value"]+"</option>");

                          if (key1==value['value']){
                             jQuery("#"+key).val(value['value']);
                          }
                       })

                    }
                    else if (value['type']=="hreflist") {
                       jQuery.each(value['keypair'], function(key1,value1){
                          jQuery("#"+key).append("<a href='javascript:hrefchange(\""+value["jsobject"]+"\",\""+key1+"\");' style='background:"+value1["value"]+"' class='colorcode' title='"+value1["name"]+"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>&nbsp;");
                       })
                    }
                    else if (value['type']=="image") {
                       jQuery("#"+key).attr("src",value['value']);
                    }
                    else if (value['type']=="text"){
                       jQuery("#"+key).val(value['value']);
                    }
                    else{
                       jQuery("#"+key).html(value['value']);
                    }

                 //})
              }
              catch(e){
              }
           })
        }
        catch(e){}
}


function tablelistRetrieve(data){
        var recperrow=3;
        var obj="";
        var tablelist="<tr>";
        try{
           jQuery.each(data.tableTemplateInfo, function(key,value){
              
              try{
                 if (key=="recperrow")
                    recperrow=value;
                 else if (key=="object"){
                    obj=value;
                 }
                 else if (key=="value"){

                    for (var i=0;i<value.length;i++){
                       if (i % recperrow == 0)
                          tablelist+="</tr><tr>";
						  
                       tablelist+="<td>"+value[i]+"</td>";
					   
					   if(i % recperrow <= 1) tablelist+= "<td><img src='img/product_border.gif'></td>";
                    }

                    tablelist+="</tr>";
                 }
              }
              catch(e){}
           })

           jQuery("#"+obj).append(tablelist);
        }
        catch(e){}
}



function tablerowRetrieve(data){
        var cartrows=5;
        var obj="";
        var tablelist="";
        try{
           jQuery.each(data.tableRowsInfo, function(key,value){
              try{
                 if (key=="cartrows")
                    cartrows=value;
                 else if (key=="object"){
                    obj=value;
                 }
                 else if (key=="value"){

                    for (var i=0;i<value.length;i++){
                       tablelist+=value[i];
                    }

                 }
              }
              catch(e){}
           })

           jQuery("#"+obj).append(tablelist);

        }
        catch(e){}
}


function pageActionRetrieve(data){
        try{
           jQuery.each(data.pageAction, function(key,value){
              try{
//alert(value["action"]+" "+value["id"]+" with type "+value["type"]+" "+value["object"]+" to "+value["value"]);
                       if (value["action"]=="update"){
                          if (value["type"]=="html")
                             jQuery("#"+value["id"]).html(value["value"]);
                          else
                             jQuery("#"+value["id"]).val(value["value"]);
                       }
                       else if (value["action"]=="remove"){
                             jQuery("#"+value["id"]).remove();
                       }
                       else if (value["action"]=="addClass"){
                             jQuery("#"+value["id"]).addClass(value["value"]);
                       }
                       else if (value["action"]=="toggleClass"){
                             jQuery("#"+value["id"]).toggleClass(value["value"]);
                       }
                       else if (value["action"]=="removeClass"){
                             jQuery("#"+value["id"]).removeClass(value["value"]);
                       }
                       else if (value["action"]=="attr"){
                             jQuery("#"+value["id"]).attr(value["object"],value["value"]);
                       }
                       else if (value["action"]=="disable"){
                             if (value["value"]=="true")
                                jQuery("#"+value["id"]).attr(value["object"],value["value"]);
                             else
                                jQuery("#"+value["id"]).removeAttr(value["object"]); 
                       }
                       else if (value["action"]=="jquery"){
                                eval("jQuery('#"+value["object"]+"')."+value["value"]+";"); 
                       }
                       else if (value["action"]=="customjs"){
                                eval(value["value"]); 
                       }


              }
              catch(e){}
           })

           jQuery("#"+obj).append(tablelist);

        }
        catch(e){}
}




