var J = jQuery.noConflict();

function ajax_baseURL() {
	url = document.location.href;
	xend = url.lastIndexOf("/") + 1;
	return url.substring(0, xend);
}

function ajax_changeText(divName, text) {
	J("#" + divName).text(text);
}

function ajax_changeHtml(divName, html) {
	J("#" + divName).html(html);
}

function ajax_url(divName, url, values) {
	J("#" + divName).load(url);
}

function confirmg(question,url) {
    var x = confirm(question);
	  if (x) {
	    window.location = url;
	}
}

function strstr( haystack, needle, bool ) {
    var pos = 0;
 
    pos = haystack.indexOf( needle );
    if( pos == -1 ){
        return false;
    } else{
        if( bool ){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}

function submit_form(formDiv, url, resultDiv, type) {
    if(type == null) {
        var sendType = 'post';
    } else {
        var sendType = type;
    }
    var options = { 
        target:        '#' + resultDiv,   // target element(s) to be updated with server response 
        //beforeSubmit:  showRequest,  // pre-submit callback 
        success:      post_form,  // post-submit callback 
 
        // other available options: 
        url:       url,         // override for form's 'action' attribute 
        type:      sendType        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 
    J('#' + formDiv).ajaxSubmit(options); 
    return false;
}

function update_list(url, resultDiv) {
    ajax_url(resultDiv, url);
    return false;
}

function use_func(func, args) {
    return func.apply(this, args);
}

function ajax_do(url, resultDiv, more_url, more_div) {

    if(typeof more_url != 'undefined' && more_url.length > 2) {
        if(typeof more_div != 'undefined' && more_div.length > 2) {
            ajax_do(more_url, more_div);
        }
    }

    return update_list(url, resultDiv);
}


function post_form(data) {
    if(strstr(data, 'Error') !== false) {
        alert(data);
    } 
}

function check_form(targetDiv, url, type, formDiv, redirectURL) {
    var options = { 
        target:        '#' + targetDiv,   // target element(s) to be updated with server response 
        //beforeSubmit:  showRequest,  // pre-submit callback 
        success:      function(data) { 
                         post_submit(data, redirectURL); 
                      } ,  // post-submit callback 
 
        // other available options: 
        url:       url,         // override for form's 'action' attribute 
        type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 

    J('#' + formDiv).ajaxSubmit(options); 
    return false;
}

function post_submit(data, redirectURL) {
    if(strstr(data, 'successful') !== false) {
        window.location=redirectURL;
        //alert(data);
    } else {
        
        //alert(content);
        alert(data);
    }
}

function ajax_form(formDiv, url, targetDiv, type) {
    if(type == null) {
        var sendType = 'post';
    } else {
        var sendType = type;
    }
    
    var options = { 
        target:        '#' + targetDiv,   // target element(s) to be updated with server response 
        //beforeSubmit:  showRequest,  // pre-submit callback 
        success:      post_ajax,  // post-submit callback 
 
        // other available options: 
        url:       url,         // override for form's 'action' attribute 
        type:      sendType        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  'json'        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 
    J('#' + formDiv).ajaxSubmit(options); 
    return false;
}

function post_ajax(data) {
    if(data == 'success') {
        if(typeof data.msg != 'undefined') {
            if(data.msg.length > 2) {
                alert(data.msg);
            }
        }
        
        if(typeof data.url != 'undefined') {
            if(data.url.length > 2) {
                window.location.href = data.url;
            }
        }
        
        if(typeof data.post_ajax != 'undefined') {
            if(data.post_ajax.length > 2) {
                if(data.post_div != 'undefined') {
                    if(data.post_div.length > 2) {
                       ajax_do(data.post_ajax, data.post_div);
                    }   
                }
            }
        }
    } else {
        alert(data.msg);
    }
}
function send_form(formDiv, url, resultDiv, type, rurl) {
    if(type == null) {
        var sendType = 'post';
    } else {
        var sendType = type;
    }
    
    
    var options = { 
        //target:        '#' + resultDiv,   // target element(s) to be updated with server response 
        //beforeSubmit:  showRequest,  // pre-submit callback 
          // post-submit callback 
 
        // other available options: 
        url:       url,         // override for form's 'action' attribute 
        type:      sendType,        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  'json'        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
        success:      
        function(responseText) {
            if(strstr(responseText, 'successful') !== false ) {
                if(rurl.length > 5) {
                    //alert(rurl);
                    window.location.href = rurl;
                } 
            } else {
                alert(responseText);
            }
        }
    }; 
    J('#' + formDiv).ajaxSubmit(options); 
    return false;
}
function ajax_confirm(question,url,div) {
       var x = confirm(question);
	   if (x) {
	       ajax_do(url, div)
	   }
   }

   function send_test(formName) {
            J('#ajax_result').html( '<p>Sending email ...</p>');
            var queryString = J('#'+formName).formSerialize(); 
            var sendAddress = J('#send_email').fieldValue();
            var extraString = '&test_email='+sendAddress ;
            queryString = queryString + extraString;
             
            J.post(base_url + 'admin/ajax/do/send_email', queryString,
                function(data){
                    ajax_changeHtml('ajax_result', data);
                    setTimeout('ajax_changeHtml(\'ajax_result\', \'\');', 3000);
                }
            ); 
            return false;
}

function send_newsletter(formName1, formName2) {
            J('#ajax_result').html( '<p>Sending newsletter ...</p>');
            var queryString1 = J('#'+formName1).formSerialize(); 
            var queryString2 = J('#'+formName2).formSerialize(); 
            queryString = queryString1 + '&' +queryString2;
             
            J.post( base_url + 'admin/ajax/do/send_newsletter', queryString,
                function(data){
                    ajax_changeHtml('ajax_result', data);
                    //setTimeout('ajax_changeHtml(\'ajax_result\', \'\');', 3000);
                }
            ); 
            return false;
}