/*
* jQuery File Download Plugin v1.4.4
*
* http://www.johnculviner.com
*
* Copyright (c) 2013 - John Culviner
*
* Licensed under the MIT license:
*   http://www.opensource.org/licenses/mit-license.php
*
* !!!!NOTE!!!!
* You must also write a cookie in conjunction with using this plugin as mentioned in the orignal post:
* http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/
* !!!!NOTE!!!!
*/
!function(a,b){var c=/[<>&\r\n"']/gm,d={"<":"lt;",">":"gt;","&":"amp;","\r":"#13;","\n":"#10;",'"':"quot;","'":"#39;"};a.extend({fileDownload:function(e,f){function v(){var c,d,f,h,i,b=g.cookieValue;if("string"==typeof b&&(b=b.toLowerCase()),c=g.cookieName.toLowerCase()+"="+b,document.cookie.toLowerCase().indexOf(c)>-1)return o.onSuccess(e),d=g.cookieName+"=; path="+g.cookiePath+"; expires="+new Date(0).toUTCString()+";",g.cookieDomain&&(d+=" domain="+g.cookieDomain+";"),document.cookie=d,x(!1),void 0;if(q||p)try{if(f=q?q.document:w(p),f&&null!==f.body&&f.body.innerHTML.length){if(h=!0,s&&s.length){i=a(f.body).contents().first();try{i.length&&i[0]===s[0]&&(h=!1)}catch(j){if(!j||-2146828218!=j.number)throw j;h=!0}}if(h)return setTimeout(function(){o.onFail(f.body.innerHTML,e),x(!0)},100),void 0}}catch(k){return o.onFail("",e,k),x(!0),void 0}setTimeout(v,g.checkInterval)}function w(a){var b=a[0].contentWindow||a[0].contentDocument;return b.document&&(b=b.document),b}function x(a){setTimeout(function(){q&&(k&&q.close(),j&&q.focus&&(q.focus(),a&&q.close()))},0)}function y(a){return a.replace(c,function(a){return"&"+d[a]})}var j,k,l,m,n,o,p,q,r,s,t,u,z,g=a.extend({preparingMessageHtml:null,failMessageHtml:null,androidPostUnsupportedMessageHtml:"Unfortunately your Android browser doesn't support this type of file download. Please try again with a different browser.",dialogOptions:{modal:!0},prepareCallback:function(){},successCallback:function(){},failCallback:function(){},httpMethod:"GET",data:null,checkInterval:100,cookieName:"fileDownload",cookieValue:"true",cookiePath:"/",cookieDomain:null,popupWindowTitle:"Initiating file download...",encodeHTMLEntities:!0},f),h=new a.Deferred,i=(navigator.userAgent||navigator.vendor||b.opera).toLowerCase();return/ip(ad|hone|od)/.test(i)?j=!0:-1!==i.indexOf("android")?k=!0:l=/avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|playbook|silk|iemobile|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(i)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(i.substr(0,4)),m=g.httpMethod.toUpperCase(),k&&"GET"!==m&&g.androidPostUnsupportedMessageHtml?(a().dialog?a("<div>").html(g.androidPostUnsupportedMessageHtml).dialog(g.dialogOptions):alert(g.androidPostUnsupportedMessageHtml),h.reject()):(n=null,o={onPrepare:function(b){g.preparingMessageHtml?n=a("<div>").html(g.preparingMessageHtml).dialog(g.dialogOptions):g.prepareCallback&&g.prepareCallback(b)},onSuccess:function(a){n&&n.dialog("close"),g.successCallback(a),h.resolve(a)},onFail:function(b,c,d){n&&n.dialog("close"),g.failMessageHtml&&a("<div>").html(g.failMessageHtml).dialog(g.dialogOptions),g.failCallback(b,c,d),h.reject(b,c)}},o.onPrepare(e),null!==g.data&&"string"!=typeof g.data&&(g.data=a.param(g.data)),"GET"===m?(null!==g.data&&(t=e.indexOf("?"),-1!==t?"&"!==e.substring(e.length-1)&&(e+="&"):e+="?",e+=g.data),j||k?(q=b.open(e),q.document.title=g.popupWindowTitle,b.focus()):l?b.location(e):p=a("<iframe>").hide().prop("src",e).appendTo("body")):(u="",null!==g.data&&a.each(g.data.replace(/\+/g," ").split("&"),function(){var c,d,e,a=this.split("="),b=a[0];a.shift(),c=a.join("="),a=[b,c],d=g.encodeHTMLEntities?y(decodeURIComponent(a[0])):decodeURIComponent(a[0]),d&&(e=g.encodeHTMLEntities?y(decodeURIComponent(a[1])):decodeURIComponent(a[1]),u+='<input type="hidden" name="'+d+'" value="'+e+'" />')}),l?(s=a("<form>").appendTo("body"),s.hide().prop("method",g.httpMethod).prop("action",e).html(u)):(j?(q=b.open("about:blank"),q.document.title=g.popupWindowTitle,r=q.document,b.focus()):(p=a("<iframe style='display: none' src='about:blank'></iframe>").appendTo("body"),r=w(p)),r.write("<html><head></head><body><form method='"+g.httpMethod+"' action='"+e+"'>"+u+"</form>"+g.popupWindowTitle+"</body></html>"),s=a(r).find("form")),s.submit()),setTimeout(v,g.checkInterval),z=h.promise(),z.abort=function(){x(),p.remove()},z)}})}(jQuery,this);