    var constErrMessage = "An exception occurred in the script. Error name: {0}. Error message: {1}";
     var constKeyString = "{0}.{1}"
     var hasToReload = false;
     var updatingCacheMessage = 'Updating cache, please be patient';
   
     
    
        //Delay
        jQuery.fn.delay = function(options) {

            var timer;
            function count(scope){
                if (timer != null) {
                    clearTimeout(timer);
                }
                var newFn = function() {
                    options.fn.apply(scope);
                };
                timer = setTimeout(newFn, options.delay);
            }
       
            return this.each(function() {
                var obj = jQuery(this);
                obj.bind(options.event, function () {
                     count(this);  
                });
            });
        };
    
    
    jQuery(document).ready(function(){
        
       
        
        jQuery(".article:first").find(".content .short").show();
        
        
        
        jQuery("#btnCancel").click(function () {
            //Close
            jQuery.unblockUI();
            
        });
        
        jQuery("#btnSave").click(function () {
            
            
             //Save it baby
            SaveTextElementToSiteVariable(pressTypePrefix + ".Header");
            SaveTextElementToSiteVariable(pressTypePrefix + ".Teaser");
            SaveTextElementToSiteVariable(pressTypePrefix + ".Body");
            SaveTextElementToSiteVariable(pressTypePrefix + ".IsPublished");
            
            jQuery.unblockUI();
            
            Processing(true,updatingCacheMessage);
          
            document.location.href = location.href;
            
            
        });
        
         jQuery("#btnDelete").click(function () {
            
            var pressTitle = document.getElementById(pressTypePrefix + ".Header").value
            
            
            var answer = confirm("Are you sure you want to delete, " + pressTitle + "?");

            if(!answer)
                return;
            
             //Delete it baby
            DeleteSiteVariable(pressTypePrefix + ".Header");
            DeleteSiteVariable(pressTypePrefix + ".Teaser");
            DeleteSiteVariable(pressTypePrefix + ".Body");
            DeleteSiteVariable(pressTypePrefix + ".IsPublished");
            
            jQuery.unblockUI();
            
            Processing(true,updatingCacheMessage);
          
            document.location.href = location.href;
            
            
        });
        
        jQuery(".create").click(function () {
            //New
            jQuery("#txtPublishDate").removeAttr('disabled');

            clearForm(document.forms[0]);
            
            
            jQuery.blockUI({ 
                message: jQuery("#editForm"),
                css: { 
                    top: '50px',
                    width: '650px',
                    cursor: 'default'
                }
             }); 
        });
        
        jQuery(".edit").click(function () {
            
            var dateItem = jQuery(this).attr("rel");
            
            
            //Update form
            //Date
            jQuery("#txtPublishDate").val(dateItem);
            //Header
            SetSiteVariableToTextElement(pressTypePrefix + ".Header");
            //Teaser
            SetSiteVariableToTextElement(pressTypePrefix + ".Teaser");
            //Body
            SetSiteVariableToTextElement(pressTypePrefix + ".Body");
            //Published
            SetSiteVariableToTextElement(pressTypePrefix + ".IsPublished");
            
            
            
            
            jQuery.blockUI({ 
                message: jQuery("#editForm"),
                css: { 
                    top: '50px',
                    width: '650px',
                    cursor: 'default'
                }
             }); 
        
        });
        
        
        
         jQuery(".cache").click(function () {
            
            
            Complaceo.Web.Services.AJAXServices.UpdateCacheForPress(cacheKey);
            
            Processing(true,updatingCacheMessage);
          
            document.location.href = location.href;
        
        });
        
        


         
        
        jQuery(".articles a").hover(
          function () {
            jQuery(this).css({textDecoration:'underline'});
          }, 
          function () {
            jQuery(this).css({textDecoration:'none'});
          }
        );

        
        
    
    
     });
     
      function UpdateSiteVariable(title,key, value)
      {
         
          var answer = confirm("Are you sure you change status on " + title + "?");

            if(!answer)
                return;
            
            var culture = jQuery.trim(jQuery("#uxCultureInfo").html());
            
            Complaceo.Web.Services.AJAXServices.SaveSiteVariable(key, value, culture);
            
            Processing(true,updatingCacheMessage);
            
            Complaceo.Web.Services.AJAXServices.UpdateCacheForPress(cacheKey);
            
            document.location.href = location.href;
         
      }
     
      function DeleteArtcle(title,header, teaser, body, isPublished)
      {
         
          var answer = confirm("Are you sure you want to delete, " + title + "?");

            if(!answer)
                return;
            
            
         
         Complaceo.Web.Services.AJAXServices.DeleteSiteVariable(header);
         Complaceo.Web.Services.AJAXServices.DeleteSiteVariable(teaser);
         Complaceo.Web.Services.AJAXServices.DeleteSiteVariable(body);
         Complaceo.Web.Services.AJAXServices.DeleteSiteVariable(isPublished);
         
          jQuery.unblockUI();
            
            Processing(true,updatingCacheMessage);
            Complaceo.Web.Services.AJAXServices.UpdateCacheForPress(cacheKey);
            
            
          
            document.location.href = location.href;
         
      }
     
     
      function DeleteSiteVariable(textElementID)
    {
       try {
       
            var key =  textElementID;
            var date = jQuery("#txtPublishDate").val();
            
           
            
           
           Complaceo.Web.Services.AJAXServices.DeleteSiteVariableForPress(key, date, cacheKey);
            
        }
        catch (e) {

                //alert(stringFormat(constErrMessage,  e.name, e.message ));
                //An exception occurred in the script. Error name: {0}. Error message: {1}
        }
            
    } 
     
     
    function SaveTextElementToSiteVariable(textElementID)
    {
       try {
       
            var culture = jQuery.trim(jQuery("#uxCultureInfo").html());
            var key =  textElementID;
            var date = jQuery("#txtPublishDate").val();
            
                       
            if(textElementID == pressTypePrefix + '.IsPublished' )
            {
                if(document.getElementById(textElementID).checked == true)
                    value = "true";
                else
                    value = "false";        
            } 
            else 
            {
                 value = document.getElementById(textElementID).value;
            }
                
            
            if ((value.length==0) || (value==null)) {
                  alert(pressTypePrefix + "  can not be empty");
            }
         
            Complaceo.Web.Services.AJAXServices.SaveSiteVariableForPress(key, value, date, culture, cacheKey);
            
        }
        catch (e) {

                //alert(stringFormat(constErrMessage,  e.name, e.message ));
                //An exception occurred in the script. Error name: {0}. Error message: {1}
        }
            
    } 
    
   
     
    function SetSiteVariableToTextElement(textElementID)
    {
        
       
        var culture = jQuery.trim(jQuery("#uxCultureInfo").html());
        var key =  textElementID;
        var date = jQuery("#txtPublishDate").val();
        
        
        Complaceo.Web.Services.AJAXServices.GetSiteVariableForPress(key, date, culture, function(result) {
            
            try {
            
                if(result == null)
                {
                    return;
                }
                
                
                
                if(textElementID == pressTypePrefix + '.IsPublished' )
                {
                    if(result == "true")
                        document.getElementById(textElementID).checked = true;
                    else
                        document.getElementById(textElementID).checked = false;        
                } 
                else
                {
                    document.getElementById(textElementID).value = result;
                }
                
              
                
                    
                
                
                 
              
		    
	        } catch (e) {

                alert(stringFormat(constErrMessage,  e.name, e.message ));
                //An exception occurred in the script. Error name: {0}. Error message: {1}
            }
                
            
            
        });
        
            
    }
    
    function clearForm(form) {
      // iterate over all of the inputs for the form
      // element that was passed in
      jQuery(':input', form).each(function() {
     var type = this.type;
     var tag = this.tagName.toLowerCase(); // normalize case
     // it's ok to reset the value attr of text inputs,
     // password inputs, and textareas
     if (type == 'text' || type == 'password' || tag == 'textarea')
       this.value = "";
     // checkboxes and radios need to have their checked state cleared
     // but should *not* have their 'value' changed
     else if (type == 'checkbox' || type == 'radio')
       this.checked = false;
     // select elements need to have their 'selectedIndex' property set to -1
     // (this works for both single and multiple select elements)
     else if (tag == 'select')
       this.selectedIndex = -1;
    });
    
    }
    
    function Processing(on, message)
    {
        var culture = jQuery.trim(jQuery("#uxCultureInfo").html());
        if(on)
        {
            //<img src="/inc/graphics/loader.gif" />
                jQuery.blockUI({ message: '<p>' + message + '</p>' }); 

        } 
        else
        {
              jQuery.unblockUI();
              
        }
            
    }    
    
     //String Format function    
    function stringFormat(str)
    {

      for(i = 1; i < arguments.length; i++)

      {

        str = str.replace("{" + (i - 1) + "}", arguments[i]);

      }

      return str;

    }

