From ae0fda9b5ff87ba12f087a13c5a7c8795de82a49 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 10:34:05 +0100 Subject: [PATCH 01/15] Fix: Can send even after status validated. --- htdocs/comm/propal.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 2f83f113c16..28f98c739c3 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -1568,7 +1568,7 @@ if ($id > 0 || ! empty($ref)) } // Send - if ($object->statut == 1) + if ($object->statut == 1 || $object->statut == 2) { $propref = dol_sanitizeFileName($object->ref); $file = $conf->propale->dir_output . '/'.$propref.'/'.$propref.'.pdf'; From ef0d3bdb02f1543566f448317d4e5fb2a3923df7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 10:53:27 +0100 Subject: [PATCH 02/15] Fix: Label --- htdocs/commande/stats/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php index cf3287620cc..8de7332fdf1 100644 --- a/htdocs/commande/stats/index.php +++ b/htdocs/commande/stats/index.php @@ -228,7 +228,7 @@ print ''; print ''; - if ($mesg) { print $mesg.'
'; } + // Nb of files + print ''; + + print ''; + + print '
'; if ($mesg) { print $mesg; } else { - print ''.$langs->trans('; + print ''.$langs->trans('; print "
\n"; print ''.$langs->trans('; } From ec327c53300db73f97666be7259e2b010ee56486 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 12 Dec 2011 13:42:19 +0100 Subject: [PATCH 03/15] Fix: remove unused parameters Fix: use dol_clone instead fetch --- htdocs/comm/propal.php | 24 +++++---- htdocs/comm/propal/class/propal.class.php | 62 +++++++++-------------- 2 files changed, 37 insertions(+), 49 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 2f83f113c16..8b0500b08e7 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -99,23 +99,25 @@ $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Action clone object if ($action == 'confirm_clone' && $confirm == 'yes') { - if (1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers') ) + if (1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers')) { $mesg='
'.$langs->trans("NoCloneOptionsSpecified").'
'; } else { - $result=$object->createFromClone($id,0,GETPOST('socid'),$hookmanager); - if ($result > 0) + if ($object->fetch($id) > 0) { - header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); - exit; - } - else - { - $mesg=$object->error; - $action=''; - //$_GET['id']=$_REQUEST['id']; + $result=$object->createFromClone(GETPOST('socid'),$hookmanager); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); + exit; + } + else + { + $mesg=$object->error; + $action=''; + } } } } diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 82057f92f64..cc2065e0a0c 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -836,53 +836,45 @@ class Propal extends CommonObject /** * Load an object from its id and create a new one in database * - * @param int $fromid Id of object to clone - * @param int $invertdetail Reverse sign of amounts for lines * @param int $socid Id of thirdparty * @param HookManager $hookmanager Hook manager instance * @return int New id of clone */ - function createFromClone($fromid,$invertdetail=0,$socid=0,$hookmanager=false) + function createFromClone($socid=0,$hookmanager=false) { global $user,$langs,$conf; $error=0; - $now=dol_now(); - $object=new Propal($this->db); - $this->db->begin(); // Load source object - $object->fetch($fromid); - $objFrom = $object; + $objFrom = dol_clone($this); $objsoc=new Societe($this->db); // Change socid if needed - if (! empty($socid) && $socid != $object->socid) + if (! empty($socid) && $socid != $this->socid) { - if ($objsoc->fetch($socid)>0) + if ($objsoc->fetch($socid) > 0) { - $object->socid = $objsoc->id; - $object->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); - $object->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); - $object->fk_project = ''; - $object->fk_delivery_address = ''; + $this->socid = $objsoc->id; + $this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + $this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); + $this->fk_project = ''; + $this->fk_delivery_address = ''; } // TODO Change product price if multi-prices } else { - $objsoc->fetch($object->socid); + $objsoc->fetch($this->socid); } - $object->id=0; - $object->statut=0; - - $objsoc->fetch($object->socid); + $this->id=0; + $this->statut=0; if (empty($conf->global->PROPALE_ADDON) || ! is_readable(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php")) { @@ -891,28 +883,22 @@ class Propal extends CommonObject } // Clear fields - $object->user_author = $user->id; - $object->user_valid = ''; - $object->date = ''; - $object->datep = $now; - $object->fin_validite = $object->datep + ($this->duree_validite * 24 * 3600); - $object->ref_client = ''; + $this->user_author = $user->id; + $this->user_valid = ''; + $this->date = ''; + $this->datep = $now; + $this->fin_validite = $this->datep + ($this->duree_validite * 24 * 3600); + $this->ref_client = ''; // Set ref require_once(DOL_DOCUMENT_ROOT ."/core/modules/propale/".$conf->global->PROPALE_ADDON.".php"); $obj = $conf->global->PROPALE_ADDON; $modPropale = new $obj; - $object->ref = $modPropale->getNextValue($objsoc,$object); + $this->ref = $modPropale->getNextValue($objsoc,$this); // Create clone - $result=$object->create($user); - - // Other options - if ($result < 0) - { - $this->error=$object->error; - $error++; - } + $result=$this->create($user); + if ($result < 0) $error++; if (! $error) { @@ -921,14 +907,14 @@ class Propal extends CommonObject { $parameters=array('objFrom'=>$objFrom); $action=''; - $reshook=$hookmanager->executeHooks('createfrom',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('createfrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) $error++; } // Appel des triggers include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->run_triggers('PROPAL_CLONE',$object,$user,$langs,$conf); + $result=$interface->run_triggers('PROPAL_CLONE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -937,7 +923,7 @@ class Propal extends CommonObject if (! $error) { $this->db->commit(); - return $object->id; + return $this->id; } else { From a5fc43477032b69acfd47331d7692945ba6157b6 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 12 Dec 2011 14:04:03 +0100 Subject: [PATCH 04/15] Fix: remove unused parameters Fix: use dol_clone instead fetch --- htdocs/comm/propal.php | 2 +- htdocs/commande/class/commande.class.php | 51 +++++------- htdocs/commande/fiche.php | 27 ++++--- htdocs/compta/facture.php | 25 +++--- htdocs/compta/facture/class/facture.class.php | 81 ++++++++++--------- 5 files changed, 93 insertions(+), 93 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 8b0500b08e7..4dab284730b 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -107,7 +107,7 @@ if ($action == 'confirm_clone' && $confirm == 'yes') { if ($object->fetch($id) > 0) { - $result=$object->createFromClone(GETPOST('socid'),$hookmanager); + $result=$object->createFromClone($socid, $hookmanager); if ($result > 0) { header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 2e663f1fe4d..dcc92d7d0ea 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -769,62 +769,51 @@ class Commande extends CommonObject /** * Load an object from its id and create a new one in database * - * @param int $fromid Id of object to clone - * @param int $invertdetail Reverse sign of amounts for lines * @param int $socid Id of thirdparty * @param HookManager $hookmanager Hook manager instance * @return int New id of clone */ - function createFromClone($fromid,$invertdetail=0,$socid=0,$hookmanager=false) + function createFromClone($socid=0,$hookmanager=false) { global $conf,$user,$langs; $error=0; - $object=new Commande($this->db); - $this->db->begin(); // Load source object - $object->fetch($fromid); - $objFrom = $object; + $objFrom = dol_clone($this); // Change socid if needed - if (! empty($socid) && $socid != $object->socid) + if (! empty($socid) && $socid != $this->socid) { $objsoc = new Societe($this->db); if ($objsoc->fetch($socid)>0) { - $object->socid = $objsoc->id; - $object->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); - $object->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); - $object->fk_project = ''; - $object->fk_delivery_address = ''; + $this->socid = $objsoc->id; + $this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + $this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); + $this->fk_project = ''; + $this->fk_delivery_address = ''; } // TODO Change product price if multi-prices } - $object->id=0; - $object->statut=0; + $this->id=0; + $this->statut=0; // Clear fields - $object->user_author_id = $user->id; - $object->user_valid = ''; - $object->date_creation = ''; - $object->date_validation = ''; - $object->ref_client = ''; + $this->user_author_id = $user->id; + $this->user_valid = ''; + $this->date_creation = ''; + $this->date_validation = ''; + $this->ref_client = ''; // Create clone - $result=$object->create($user); - - // Other options - if ($result < 0) - { - $this->error=$object->error; - $error++; - } + $result=$this->create($user); + if ($result < 0) $error++; if (! $error) { @@ -833,14 +822,14 @@ class Commande extends CommonObject { $parameters=array('objFrom'=>$objFrom); $action=''; - $reshook=$hookmanager->executeHooks('createfrom',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('createfrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) $error++; } // Appel des triggers include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->run_triggers('ORDER_CLONE',$object,$user,$langs,$conf); + $result=$interface->run_triggers('ORDER_CLONE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -849,7 +838,7 @@ class Commande extends CommonObject if (! $error) { $this->db->commit(); - return $object->id; + return $this->id; } else { diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index ffe5b39e31a..9a7cc4a397e 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -79,23 +79,26 @@ $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Action clone object if ($action == 'confirm_clone' && $confirm == 'yes') { - if ( 1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers') ) + if (1==0 && ! GETPOST('clone_content') && ! GETPOST('clone_receivers')) { $mesg='
'.$langs->trans("NoCloneOptionsSpecified").'
'; } else { - $result=$object->createFromClone($id, 0, GETPOST('socid'), $hookmanager); - if ($result > 0) - { - header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); - exit; - } - else - { - $mesg='
'.$object->error.'
'; - $action=''; - } + if ($object->fetch($id) > 0) + { + $result=$object->createFromClone($socid, $hookmanager); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF'].'?id='.$result); + exit; + } + else + { + $mesg='
'.$object->error.'
'; + $action=''; + } + } } } diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php index 82e2c659f15..0f34e84e434 100644 --- a/htdocs/compta/facture.php +++ b/htdocs/compta/facture.php @@ -98,17 +98,20 @@ if ($action == 'confirm_clone' && $confirm == 'yes') } else { - $result=$object->createFromClone($id,0,$hookmanager); - if ($result > 0) - { - header("Location: ".$_SERVER['PHP_SELF'].'?facid='.$result); - exit; - } - else - { - $mesg=$object->error; - $action=''; - } + if ($object->fetch($id) > 0) + { + $result=$object->createFromClone($socid, $hookmanager); + if ($result > 0) + { + header("Location: ".$_SERVER['PHP_SELF'].'?facid='.$result); + exit; + } + else + { + $mesg=$object->error; + $action=''; + } + } } } diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 6b8715bd1a1..cbe54bf29fd 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -490,60 +490,65 @@ class Facture extends CommonObject /** * Load an object from its id and create a new one in database * - * @param int $fromid Id of object to clone - * @param int $invertdetail Reverse sign of amounts for lines + * @param int $socid Id of thirdparty * @param HookManager $hookmanager Hook manager instance * @return int New id of clone */ - function createFromClone($fromid,$invertdetail=0,$hookmanager=false) + function createFromClone($socid=0,$hookmanager=false) { global $conf,$user,$langs; $error=0; - - // Load source object - $objFrom=new Facture($this->db); - $objFrom->fetch($fromid); - - // Load new object - $object=new Facture($this->db); - $object->fetch($fromid); - + $this->db->begin(); - $object->id=0; - $object->statut=0; + // Load source object + $objFrom = dol_clone($this); + + // Change socid if needed + if (! empty($socid) && $socid != $this->socid) + { + $objsoc = new Societe($this->db); + + if ($objsoc->fetch($socid)>0) + { + $this->socid = $objsoc->id; + $this->cond_reglement_id = (! empty($objsoc->cond_reglement_id) ? $objsoc->cond_reglement_id : 0); + $this->mode_reglement_id = (! empty($objsoc->mode_reglement_id) ? $objsoc->mode_reglement_id : 0); + $this->fk_project = ''; + $this->fk_delivery_address = ''; + } + + // TODO Change product price if multi-prices + } + + $this->id=0; + $this->statut=0; // Clear fields - $object->user_author = $user->id; - $object->user_valid = ''; - $object->fk_facture_source = 0; - $object->date_creation = ''; - $object->date_validation = ''; - $object->ref_client = ''; - $object->close_code = ''; - $object->close_note = ''; - $object->products = $object->lines; // Tant que products encore utilise + $this->user_author = $user->id; + $this->user_valid = ''; + $this->fk_facture_source = 0; + $this->date_creation = ''; + $this->date_validation = ''; + $this->ref_client = ''; + $this->close_code = ''; + $this->close_note = ''; + $this->products = $this->lines; // Tant que products encore utilise // Loop on each line of new invoice - foreach($object->lines as $i => $line) + foreach($this->lines as $i => $line) { - if (($object->lines[$i]->info_bits & 0x02) == 0x02) // We do not clone line of discounts + if (($this->lines[$i]->info_bits & 0x02) == 0x02) // We do not clone line of discounts { - unset($object->lines[$i]); - unset($object->products[$i]); // Tant que products encore utilise + unset($this->lines[$i]); + unset($this->products[$i]); // Tant que products encore utilise } } // Create clone - $result=$object->create($user); - - // Other options - if ($result < 0) - { - $this->error=$object->error; - $error++; - } + $result=$this->create($user); + if ($result < 0) $error++; if (! $error) { @@ -552,14 +557,14 @@ class Facture extends CommonObject { $parameters=array('objFrom'=>$objFrom); $action=''; - $reshook=$hookmanager->executeHooks('createfrom',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('createfrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) $error++; } // Appel des triggers include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php"); $interface=new Interfaces($this->db); - $result=$interface->run_triggers('BILL_CLONE',$object,$user,$langs,$conf); + $result=$interface->run_triggers('BILL_CLONE',$this,$user,$langs,$conf); if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } @@ -568,7 +573,7 @@ class Facture extends CommonObject if (! $error) { $this->db->commit(); - return $object->id; + return $this->id; } else { From 11754bfe5110cb89ef48f0aaf073508d5dadab53 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 14:19:21 +0100 Subject: [PATCH 05/15] New: Show supplier invoice label on tab note and document --- htdocs/fourn/facture/document.php | 261 ++++++++++++++++++------------ htdocs/fourn/facture/fiche.php | 27 +--- htdocs/fourn/facture/note.php | 227 ++++++++++++++++---------- 3 files changed, 307 insertions(+), 208 deletions(-) diff --git a/htdocs/fourn/facture/document.php b/htdocs/fourn/facture/document.php index e91bd47a35c..aed51380713 100644 --- a/htdocs/fourn/facture/document.php +++ b/htdocs/fourn/facture/document.php @@ -1,22 +1,22 @@ * Copyright (C) 2004-2009 Laurent Destailleur - * Copyright (C) 2005 Marc Barilley / Ocebo - * Copyright (C) 2005-2009 Regis Houssin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +* Copyright (C) 2005 Marc Barilley / Ocebo +* Copyright (C) 2005-2009 Regis Houssin +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ /** * \file htdocs/fourn/facture/document.php @@ -35,7 +35,7 @@ $langs->load('bills'); $langs->load('other'); $langs->load("companies"); -$facid = isset($_GET["facid"])?$_GET["facid"]:''; +$facid = GETPOST("facid")?GETPOST("facid"):GETPOST("id"); $action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; // Security check @@ -46,13 +46,16 @@ $result = restrictedArea($user, 'fournisseur', $facid, 'facture_fourn', 'facture $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); -if ($page == -1) { $page = 0; } +if ($page == -1) { + $page = 0; +} $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="name"; +$object = new FactureFournisseur($db); /* @@ -62,61 +65,70 @@ if (! $sortfield) $sortfield="name"; // Envoi fichier if ($_POST['sendit'] && ! empty($conf->global->MAIN_UPLOAD_DOC)) { - require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); + require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); - $facture = new FactureFournisseur($db); - if ($facture->fetch($facid)) - { - $ref=dol_sanitizeFileName($facture->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; + $facture = new FactureFournisseur($db); + if ($facture->fetch($facid)) + { + $ref=dol_sanitizeFileName($facture->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; - if (create_exdir($upload_dir) >= 0) - { - $resupload=dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0,0,$_FILES['userfile']['error']); - if (is_numeric($resupload) && $resupload > 0) - { - $mesg = '
'.$langs->trans("FileTransferComplete").'
'; - } - else - { - $langs->load("errors"); - if ($resupload < 0) // Unknown error - { - $mesg = '
'.$langs->trans("ErrorFileNotUploaded").'
'; - } - else if (preg_match('/ErrorFileIsInfectedWithAVirus/',$resupload)) // Files infected by a virus - { - $mesg = '
'.$langs->trans("ErrorFileIsInfectedWithAVirus").'
'; - } - else // Known error - { - $mesg = '
'.$langs->trans($resupload).'
'; - } - } - } - } + if (create_exdir($upload_dir) >= 0) + { + $resupload=dol_move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir . "/" . $_FILES['userfile']['name'],0,0,$_FILES['userfile']['error']); + if (is_numeric($resupload) && $resupload > 0) + { + $mesg = '
'.$langs->trans("FileTransferComplete").'
'; + } + else + { + $langs->load("errors"); + if ($resupload < 0) // Unknown error + { + $mesg = '
'.$langs->trans("ErrorFileNotUploaded").'
'; + } + else if (preg_match('/ErrorFileIsInfectedWithAVirus/',$resupload)) // Files infected by a virus + { + $mesg = '
'.$langs->trans("ErrorFileIsInfectedWithAVirus").'
'; + } + else // Known error + { + $mesg = '
'.$langs->trans($resupload).'
'; + } + } + } + } } // Delete if ($action=='delete') { - $facid=$_GET['id']; + $facid=$_GET['id']; - $facture = new FactureFournisseur($db); - if ($facture->fetch($facid)) - { + $facture = new FactureFournisseur($db); + if ($facture->fetch($facid)) + { $ref=dol_sanitizeFileName($facture->ref); $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; - $file = $upload_dir . '/' . $_GET['urlfile']; // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). - dol_delete_file($file); - $mesg = '
'.$langs->trans('FileWasRemoved').'
'; - } + $file = $upload_dir . '/' . $_GET['urlfile']; // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). + dol_delete_file($file); + $mesg = '
'.$langs->trans('FileWasRemoved').'
'; + } +} + +// Set label +if ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) +{ + $object->fetch($facid); + $object->label=$_POST['label']; + $result=$object->update($user); + if ($result < 0) dol_print_error($db); } /* - * Affichage + * View */ $form = new Form($db); @@ -125,71 +137,116 @@ llxHeader(); if ($facid > 0) { - $facture = new FactureFournisseur($db); - if ($facture->fetch($facid)) - { - $facture->fetch_thirdparty(); + if ($object->fetch($facid)) + { + $object->fetch_thirdparty(); - $ref=dol_sanitizeFileName($facture->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($facture->id,2).$ref; + $ref=dol_sanitizeFileName($object->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.get_exdir($object->id,2).$ref; - $head = facturefourn_prepare_head($facture); - dol_fiche_head($head, 'documents', $langs->trans('SupplierInvoice'), 0, 'bill'); + $head = facturefourn_prepare_head($object); + dol_fiche_head($head, 'documents', $langs->trans('SupplierInvoice'), 0, 'bill'); - // Construit liste des fichiers - $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); - $totalsize=0; - foreach($filearray as $key => $file) - { - $totalsize+=$file['size']; - } + // Construit liste des fichiers + $filearray=dol_dir_list($upload_dir,"files",0,'','\.meta$',$sortfield,(strtolower($sortorder)=='desc'?SORT_DESC:SORT_ASC),1); + $totalsize=0; + foreach($filearray as $key => $file) + { + $totalsize+=$file['size']; + } - print ''; + print '
'; - // Ref - print ''; - print "\n"; + // Ref + print ''; + print "\n"; - // Ref supplier - print ''; - print "\n"; + // Ref supplier + print ''; + print "\n"; - // Societe - print ''; + // Thirdparty + print ''; - print ''; + // Type + print ''; + $facidavoir=$object->getListIdAvoirFromInvoice(); + if (count($facidavoir) > 0) + { + print ' ('.$langs->transnoentities("InvoiceHasAvoir"); + $i=0; + foreach($facidavoir as $id) + { + if ($i==0) print ' '; + else print ','; + $facavoir=new FactureFournisseur($db); + $facavoir->fetch($id); + print $facavoir->getNomUrl(1); + } + print ')'; + } + if ($facidnext > 0) + { + $facthatreplace=new FactureFournisseur($db); + $facthatreplace->fetch($facidnext); + print ' ('.$langs->transnoentities("ReplacedByInvoice",$facthatreplace->getNomUrl(1)).')'; + } + print ''; - print '
'.$langs->trans("Ref").''; - print $form->showrefnav($facture,'facid','',1,'rowid','ref',$morehtmlref); - print '
'.$langs->trans("Ref").''; + print $form->showrefnav($object,'facid','',1,'rowid','ref',$morehtmlref); + print '
'.$langs->trans("RefSupplier").''.$facture->ref_supplier.'
'.$langs->trans("RefSupplier").''.$object->ref_supplier.'
'.$langs->trans('Supplier').''.$facture->thirdparty->getNomUrl(1).'
'.$langs->trans('Supplier').''.$object->thirdparty->getNomUrl(1).'
'.$langs->trans('NbOfAttachedFiles').''.count($filearray).'
'.$langs->trans('Type').''; + print $object->getLibType(); + if ($object->type == 1) + { + $facreplaced=new FactureFournisseur($db); + $facreplaced->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("ReplaceInvoice",$facreplaced->getNomUrl(1)).')'; + } + if ($object->type == 2) + { + $facusing=new FactureFournisseur($db); + $facusing->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("CorrectInvoice",$facusing->getNomUrl(1)).')'; + } - print '
'.$langs->trans('TotalSizeOfAttachedFiles').''.$totalsize.' '.$langs->trans('bytes').'
'; - print ''; + // Label + print '
'.$form->editfieldkey("Label",'label',$object->label,$object,0).''; + print $form->editfieldval("Label",'label',$object->label,$object,0); + print '
'.$langs->trans('NbOfAttachedFiles').''.count($filearray).'
'.$langs->trans('TotalSizeOfAttachedFiles').''.$totalsize.' '.$langs->trans('bytes').'
'; + print ''; - // Affiche formulaire upload - $formfile=new FormFile($db); - $formfile->form_attach_new_file(DOL_URL_ROOT.'/fourn/facture/document.php?facid='.$facture->id,'',0,0,$user->rights->fournisseur->facture->creer); + dol_htmloutput_mesg($mesg); - // List of document - $param='&facid='.$facture->id; - $formfile->list_of_documents($filearray,$facture,'facture_fournisseur',$param,0,get_exdir($facture->id,2,0).$facture->id.'/'); + // Affiche formulaire upload + $formfile=new FormFile($db); + $formfile->form_attach_new_file(DOL_URL_ROOT.'/fourn/facture/document.php?facid='.$object->id,'',0,0,$user->rights->fournisseur->facture->creer); - } - else - { - print 'facid='.$facid.'
'; - dol_print_error($db); - } + + // List of document + $param='&facid='.$object->id; + $formfile->list_of_documents($filearray,$object,'facture_fournisseur',$param,0,get_exdir($object->id,2,0).$object->id.'/'); + + } + else + { + print 'facid='.$facid.'
'; + dol_print_error($db); + } } else { - print $langs->trans('UnkownError'); + print $langs->trans('UnkownError'); } $db->close(); diff --git a/htdocs/fourn/facture/fiche.php b/htdocs/fourn/facture/fiche.php index 63bd5c55d2e..82cfa1bc8ed 100644 --- a/htdocs/fourn/facture/fiche.php +++ b/htdocs/fourn/facture/fiche.php @@ -149,7 +149,7 @@ if (($action == 'setref_supplier' || $action == 'set_ref_supplier') && $user->ri $result=$object->set_ref_supplier($user, $_POST['ref_supplier']); } -// Set supplier ref +// Set label if ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) { $object->fetch($id); @@ -217,9 +217,8 @@ if ($action == 'update' && ! $_POST['cancel']) $result = $db->query($sql); } } -/* - * Action creation -*/ + +// Create if ($action == 'add' && $user->rights->fournisseur->facture->creer) { $error=0; @@ -640,9 +639,7 @@ if ($action == 'reopen' && $user->rights->fournisseur->facture->creer) } } -/* - * Add file in email form -*/ +// Add file in email form if ($_POST['addfile']) { require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); @@ -656,9 +653,7 @@ if ($_POST['addfile']) $action='presend'; } -/* - * Remove file in email form -*/ +// Remove file in email form if (! empty($_POST['removedfile'])) { require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); @@ -672,9 +667,7 @@ if (! empty($_POST['removedfile'])) $action='presend'; } -/* - * Send mail -*/ +// Send mail if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_POST['cancel']) { $langs->load('mails'); @@ -830,10 +823,7 @@ if ($action == 'send' && ! $_POST['addfile'] && ! $_POST['removedfile'] && ! $_P //$action = 'presend'; } -/* - * Build document -*/ - +// Build document if ($action == 'builddoc') { // Save modele used @@ -879,7 +869,7 @@ if ($action == 'remove_file') /* * View -*/ + */ $form = new Form($db); $formfile = new FormFile($db); @@ -1312,7 +1302,6 @@ else } print ''; - // Label print ''.$form->editfieldkey("Label",'label',$object->label,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)).''; print $form->editfieldval("Label",'label',$object->label,$object,($object->statut<2 && $user->rights->fournisseur->facture->creer)); diff --git a/htdocs/fourn/facture/note.php b/htdocs/fourn/facture/note.php index b8809771abc..98b73a767f6 100644 --- a/htdocs/fourn/facture/note.php +++ b/htdocs/fourn/facture/note.php @@ -1,21 +1,21 @@ - * Copyright (C) 2004-2009 Laurent Destailleur - * Copyright (C) 2005-2009 Regis Houssin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ + * Copyright (C) 2004-2011 Laurent Destailleur +* Copyright (C) 2005-2009 Regis Houssin +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +*/ /** * \file htdocs/fourn/facture/note.php @@ -31,138 +31,191 @@ require_once(DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'); $langs->load('bills'); $langs->load("companies"); -$facid = isset($_GET["facid"])?$_GET["facid"]:''; -$action=empty($_GET['action']) ? (empty($_POST['action']) ? '' : $_POST['action']) : $_GET['action']; +$facid = GETPOST("facid")?GETPOST("facid"):GETPOST('id'); +$action = GETPOST('action'); // Security check if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'fournisseur', $facid, 'facture_fourn', 'facture'); -$fac = new FactureFournisseur($db); -$fac->fetch($_GET["facid"]); +$object = new FactureFournisseur($db); +$object->fetch($facid); + /******************************************************************************/ /* Actions */ /******************************************************************************/ -if ($_POST["action"] == 'update_public' && $user->rights->facture->creer) +if ($action == 'update_public' && $user->rights->facture->creer) { - $db->begin(); + $db->begin(); - $res=$fac->update_note_public($_POST["note_public"],$user); - if ($res < 0) - { - $mesg='
'.$fac->error.'
'; - $db->rollback(); - } - else - { - $db->commit(); - } + $res=$object->update_note_public($_POST["note_public"],$user); + if ($res < 0) + { + $mesg='
'.$object->error.'
'; + $db->rollback(); + } + else + { + $db->commit(); + } } -if ($_POST["action"] == 'update' && $user->rights->fournisseur->facture->creer) +if ($action == 'update' && $user->rights->fournisseur->facture->creer) { - $db->begin(); + $db->begin(); - $res=$fac->update_note($_POST["note"],$user); - if ($res < 0) - { - $mesg='
'.$fac->error.'
'; - $db->rollback(); - } - else - { - $db->commit(); - } + $res=$object->update_note($_POST["note"],$user); + if ($res < 0) + { + $mesg='
'.$object->error.'
'; + $db->rollback(); + } + else + { + $db->commit(); + } } +// Set label +if ($action == 'setlabel' && $user->rights->fournisseur->facture->creer) +{ + $object->fetch($facid); + $object->label=$_POST['label']; + $result=$object->update($user); + if ($result < 0) dol_print_error($db); +} /* * View - */ +*/ $form = new Form($db); llxHeader(); -if ($_GET["facid"]) +if ($facid) { - $fac->fetch_thirdparty(); + $object->fetch_thirdparty(); - $head = facturefourn_prepare_head($fac); - $titre=$langs->trans('SupplierInvoice'); - dol_fiche_head($head, 'note', $titre, 0, 'bill'); + $head = facturefourn_prepare_head($object); + $titre=$langs->trans('SupplierInvoice'); + dol_fiche_head($head, 'note', $titre, 0, 'bill'); print ''; - // Ref - print ''; - print "\n"; + // Ref + print ''; + print "\n"; - // Ref supplier - print ''; - print "\n"; + // Ref supplier + print ''; + print "\n"; // Company - print ''; + print ''; - // Note publique + // Type + print ''; + + // Label + print ''; + + // Note public print ''; - print '"; + print ""; - // Note private - if (! $user->societe_id) - { - print ''; - print '"; - } + // Note private + if (! $user->societe_id) + { + print ''; + print '"; + } print "
'.$langs->trans("Ref").''; - print $form->showrefnav($fac,'facid','',1,'rowid','ref',$morehtmlref); - print '
'.$langs->trans("Ref").''; + print $form->showrefnav($object,'facid','',1,'rowid','ref',$morehtmlref); + print '
'.$langs->trans("RefSupplier").''.$fac->ref_supplier.'
'.$langs->trans("RefSupplier").''.$object->ref_supplier.'
'.$langs->trans('Supplier').''.$fac->thirdparty->getNomUrl(1).'
'.$langs->trans('Supplier').''.$object->thirdparty->getNomUrl(1).'
'.$langs->trans('Type').''; + print $object->getLibType(); + if ($object->type == 1) + { + $facreplaced=new FactureFournisseur($db); + $facreplaced->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("ReplaceInvoice",$facreplaced->getNomUrl(1)).')'; + } + if ($object->type == 2) + { + $facusing=new FactureFournisseur($db); + $facusing->fetch($object->fk_facture_source); + print ' ('.$langs->transnoentities("CorrectInvoice",$facusing->getNomUrl(1)).')'; + } + + $facidavoir=$object->getListIdAvoirFromInvoice(); + if (count($facidavoir) > 0) + { + print ' ('.$langs->transnoentities("InvoiceHasAvoir"); + $i=0; + foreach($facidavoir as $id) + { + if ($i==0) print ' '; + else print ','; + $facavoir=new FactureFournisseur($db); + $facavoir->fetch($id); + print $facavoir->getNomUrl(1); + } + print ')'; + } + if ($facidnext > 0) + { + $facthatreplace=new FactureFournisseur($db); + $facthatreplace->fetch($facidnext); + print ' ('.$langs->transnoentities("ReplacedByInvoice",$facthatreplace->getNomUrl(1)).')'; + } + print '
'.$form->editfieldkey("Label",'label',$object->label,$object,0).''; + print $form->editfieldval("Label",'label',$object->label,$object,0); + print '
'.$langs->trans("NotePublic").' :'; + print ''; if ($_GET["action"] == 'edit') { - print '
'; + print ''; print ''; print ''; - print '
"; + print '
"; print ''; print '
'; } else { - print ($fac->note_public?nl2br($fac->note_public):" "); + print ($object->note_public?nl2br($object->note_public):" "); } - print "
'.$langs->trans("NotePrivate").' :'; - if ($_GET["action"] == 'edit') - { - print '
'; - print ''; - print ''; - print '
"; - print ''; - print '
'; - } - else - { - print ($fac->note?nl2br($fac->note):" "); - } - print "
'.$langs->trans("NotePrivate").' :'; + if ($_GET["action"] == 'edit') + { + print '
'; + print ''; + print ''; + print '
"; + print ''; + print '
'; + } + else + { + print ($object->note?nl2br($object->note):" "); + } + print "
"; dol_fiche_end(); /* - * Actions + * Buttons */ print '
'; if ($user->rights->fournisseur->facture->creer && $_GET["action"] <> 'edit') { - print "id&action=edit\">".$langs->trans('Modify').""; + print "id&action=edit\">".$langs->trans('Modify').""; } print "
"; From de33a568cbbf0b108e699389368fc1dc7e704d19 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 16:26:47 +0100 Subject: [PATCH 06/15] Qual: All dolibarr code now use dol_xxx function to manage dates --- htdocs/core/db/mssql.class.php | 13 ++++++++----- htdocs/core/db/mysql.class.php | 10 +++++----- htdocs/core/db/mysqli.class.php | 10 +++++----- htdocs/core/db/pgsql.class.php | 10 +++++----- 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/htdocs/core/db/mssql.class.php b/htdocs/core/db/mssql.class.php index 63ff3e9c20e..87a6c71b188 100644 --- a/htdocs/core/db/mssql.class.php +++ b/htdocs/core/db/mssql.class.php @@ -542,6 +542,7 @@ class DoliDBMssql /** * Escape a string to insert data. + * * @param stringtoencode String to escape * @return string String escaped */ @@ -554,19 +555,21 @@ class DoliDBMssql /** * Convert (by PHP) a GM Timestamp date into a PHP server TZ to insert into a date field. * Function to use to build INSERT, UPDATE or WHERE predica - * @param param Date TMS to convert - * @return string Date in a string YYYYMMDDHHMMSS + * + * @param string $param Date TMS to convert + * @return string Date in a string YYYYMMDDHHMMSS */ function idate($param) { - return adodb_strftime("%Y-%m-%d %H:%M:%S",$param); + return dol_print_date($param,"%Y-%m-%d %H:%M:%S",true); } /** * Convert (by PHP) a PHP server TZ string date into a GM Timestamps date * 19700101020000 -> 3600 with TZ+1 - * @param string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) - * @return date Date TMS + * + * @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) + * @return date Date TMS */ function jdate($string) { diff --git a/htdocs/core/db/mysql.class.php b/htdocs/core/db/mysql.class.php index 6b661073089..a4c6f85c26a 100644 --- a/htdocs/core/db/mysql.class.php +++ b/htdocs/core/db/mysql.class.php @@ -537,20 +537,20 @@ class DoliDBMysql * Convert (by PHP) a GM Timestamp date into a string date with PHP server TZ to insert into a date field. * Function to use to build INSERT, UPDATE or WHERE predica * - * @param param Date TMS to convert - * @return string Date in a string YYYYMMDDHHMMSS + * @param string $param Date TMS to convert + * @return string Date in a string YYYYMMDDHHMMSS */ function idate($param) { - return adodb_strftime("%Y%m%d%H%M%S",$param); + return dol_print_date($param,"%Y%m%d%H%M%S",true); } /** * Convert (by PHP) a PHP server TZ string date into a GM Timestamps date * 19700101020000 -> 3600 with TZ+1 * - * @param string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) - * @return date Date TMS + * @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) + * @return date Date TMS */ function jdate($string) { diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 345c88a4448..63ca6341dab 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -549,20 +549,20 @@ class DoliDBMysqli * Convert (by PHP) a GM Timestamp date into a PHP server TZ to insert into a date field. * Function to use to build INSERT, UPDATE or WHERE predica * - * @param param Date TMS to convert - * @return string Date in a string YYYYMMDDHHMMSS + * @param string $param Date TMS to convert + * @return string Date in a string YYYYMMDDHHMMSS */ function idate($param) { - return adodb_strftime("%Y%m%d%H%M%S",$param); + return dol_print_date($param,"%Y%m%d%H%M%S",true); } /** * Convert (by PHP) a PHP server TZ string date into a GM Timestamps date * 19700101020000 -> 3600 with TZ+1 * - * @param string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) - * @return date Date TMS + * @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) + * @return date Date TMS */ function jdate($string) { diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index af5a339dd54..f4ece94f448 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -693,20 +693,20 @@ class DoliDBPgsql * Convert (by PHP) a GM Timestamp date into a GM string date to insert into a date field. * Function to use to build INSERT, UPDATE or WHERE predica * - * @param param Date TMS to convert - * @return string Date in a string YYYYMMDDHHMMSS + * @param string $param Date TMS to convert + * @return string Date in a string YYYYMMDDHHMMSS */ function idate($param) { - return adodb_strftime("%Y-%m-%d %H:%M:%S",$param); + return dol_print_date($param,"%Y-%m-%d %H:%M:%S",true); } /** * Convert (by PHP) a PHP server TZ string date into a GM Timestamps date * 19700101020000 -> 3600 with TZ+1 * - * @param string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) - * @return date Date TMS + * @param string $string Date in a string (YYYYMMDDHHMMSS, YYYYMMDD, YYYY-MM-DD HH:MM:SS) + * @return date Date TMS */ function jdate($string) { From 6dd126749fd41a66f935f0dcf56bc3c90a31d8ec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 17:10:09 +0100 Subject: [PATCH 07/15] Qual: enhance PHPUnit tests --- test/phpunit/DateLibTest.php | 74 ++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/test/phpunit/DateLibTest.php b/test/phpunit/DateLibTest.php index 10eb4ce85e5..5e6ab291b82 100644 --- a/test/phpunit/DateLibTest.php +++ b/test/phpunit/DateLibTest.php @@ -146,5 +146,79 @@ class DateLibTest extends PHPUnit_Framework_TestCase return $result; } + /** + */ + public function testDolPrintDate() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + // Check %Y-%m-%d %H:%M:%S format + $result=dol_print_date(0,'%Y-%m-%d %H:%M:%S',true); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('1970-01-01 00:00:00',$result); + + // Check dayhour format for fr_FR + $outputlangs=new Translate('',$conf); + $outputlangs->setDefaultLang('fr_FR'); + $outputlangs->load("main"); + + $result=dol_print_date(0+24*3600,'dayhour',true,$outputlangs); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('02/01/1970 00:00',$result); + + // Check day format for en_US + $outputlangs=new Translate('',$conf); + $outputlangs->setDefaultLang('en_US'); + $outputlangs->load("main"); + + $result=dol_print_date(0+24*3600,'day',true,$outputlangs); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('01/02/1970',$result); + + // Check %a and %b format for en_US + $result=dol_print_date(0,'%a %b',true,$outputlangs); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('Thu jan',$result); + + return $result; + } + + /** + */ + public function testDolTimePlusDuree() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + // Check dayhour format for fr_FR + $outputlangs=new Translate('',$conf); + $outputlangs->setDefaultLang('fr_FR'); + $outputlangs->load("main"); + + $result=dol_print_date(dol_time_plus_duree(dol_time_plus_duree(dol_time_plus_duree(0,1,'m'),1,'y'),1,'d'),'dayhour',true,$outputlangs); + print __METHOD__." result=".$result."\n"; + $this->assertEquals('02/02/1971 00:00',$result); + + return $result; + } + + /** + */ + public function testDolGetFirstDay() + { + global $conf,$user,$langs,$db; + $conf=$this->savconf; + $user=$this->savuser; + $langs=$this->savlangs; + $db=$this->savdb; + + } } ?> \ No newline at end of file From acd0bc2e105dc32d8e3db3df4d052be94a54dc59 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 19:46:46 +0100 Subject: [PATCH 08/15] New: Add hidden option MAIN_OVERWRITE_TRANS --- htdocs/core/class/translate.class.php | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 28f97ca8e39..3769abc6669 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -159,7 +159,6 @@ class Translate { { global $conf; - //var_dump($this->dir);exit; // Check parameters if (empty($domain)) { @@ -266,9 +265,6 @@ class Translate { } else { - // On stocke toujours dans le tableau Tab en UTF-8 - //if (! empty($this->charset_inputfile[$newdomain]) && $this->charset_inputfile[$newdomain] == 'ISO-8859-1') $value=utf8_encode($value); - $this->tab_translate[$key]=$value; if ($usecachekey) $tabtranslatedomain[$key]=$value; // To save lang content in cache } @@ -289,7 +285,6 @@ class Translate { dol_syslog($error, LOG_ERR); } } - //exit; if (empty($conf->global->MAIN_FORCELANGDIR)) break; // Break loop on each root dir. If a module has forced dir, we do not stop loop. } @@ -389,6 +384,8 @@ class Translate { */ function trans($key, $param1='', $param2='', $param3='', $param4='', $maxsize=0) { + global $conf; + if (! empty($this->tab_translate[$key])) // Translation is available { $str=$this->tab_translate[$key]; @@ -400,14 +397,23 @@ class Translate { // We replace some HTML tags by __xx__ to avoid having them encoded by htmlentities $str=str_replace(array('<','>','"',),array('__lt__','__gt__','__quot__'),$str); - //$str=$this->convToOutputCharset($str); // Convert string to $this->charset_output - // Crypt string into HTML - // $str est une chaine stockee en memoire au format $this->charset_output $str=htmlentities($str,ENT_QUOTES,$this->charset_output); // Restore HTML tags $str=str_replace(array('__lt__','__gt__','__quot__'),array('<','>','"',),$str); + + // Overwrite translation + if (! empty($conf->global->MAIN_OVERWRITE_TRANS)) // Overwrite translation with string1:newstring1,string2:newstring2 + { + $tmparray=explode(',', $conf->global->MAIN_OVERWRITE_TRANS); + foreach($tmparray as $tmp) + { + $tmparray2=explode(':',$tmp); + if ($tmparray2[0]==$str) { $str=$tmparray2[1]; break; } + } + } + return $str; } else // Translation is not available @@ -458,7 +464,7 @@ class Translate { { $str=$this->tab_translate[$key]; - $str=sprintf($str,$param1,$param2,$param3,$param4); + if (! preg_match('/^Format/',$key)) $str=sprintf($str,$param1,$param2,$param3,$param4); // Replace %s and %d except for FormatXXX strings. } else { From 52585b01ffa6c3b01a30a1197197310b3959bf49 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 19:50:59 +0100 Subject: [PATCH 09/15] Fix: Removed bad link --- htdocs/admin/tools/eaccelerator.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/htdocs/admin/tools/eaccelerator.php b/htdocs/admin/tools/eaccelerator.php index aa3bbcefc65..e684fe43c54 100644 --- a/htdocs/admin/tools/eaccelerator.php +++ b/htdocs/admin/tools/eaccelerator.php @@ -85,7 +85,7 @@ function compare($x, $y) /** * Compare revisions - * + * * @param array $x Parts of version 1 * @param array $y Parts of version 2 * @return int 1 if 1<2, 0 if 1=2, -1 if 1>2 @@ -104,7 +104,7 @@ function revcompare($x, $y) /** * Output table - * + * * @param array $list Array of records * @return void */ @@ -179,7 +179,7 @@ function create_script_table($list) /** * Output table - * + * * @param array $list Array of records * @return void */ @@ -346,11 +346,9 @@ if (function_exists('eaccelerator_get')) } print "

"; -print "
"; -print '
'; -print 'Eaccelerator is created by the eAccelerator team, http://eaccelerator.net

'; -print "
"; llxFooter(); + +$db->close(); ?> From cdb6d15db53ef946963a3c8fecaa1c8847d06b71 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 12 Dec 2011 20:14:38 +0100 Subject: [PATCH 10/15] Doxygen --- htdocs/core/lib/member.lib.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/core/lib/member.lib.php b/htdocs/core/lib/member.lib.php index 59f6a150276..a0f3cab5789 100644 --- a/htdocs/core/lib/member.lib.php +++ b/htdocs/core/lib/member.lib.php @@ -23,7 +23,7 @@ /** * Return array head with list of tabs to view object informations - * + * * @param object Member * @return array head */ @@ -113,7 +113,7 @@ function member_admin_prepare_head($object) // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab // $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to remove a tab complete_head_from_modules($conf,$langs,$object,$head,$h,'member_admin'); - + $head[$h][0] = DOL_URL_ROOT.'/adherents/admin/adherent_extrafields.php'; $head[$h][1] = $langs->trans("ExtraFields"); $head[$h][2] = 'attributes'; @@ -123,7 +123,7 @@ function member_admin_prepare_head($object) $head[$h][1] = $langs->trans("BlankSubscriptionForm"); $head[$h][2] = 'public'; $h++; - + complete_head_from_modules($conf,$langs,$object,$head,$h,'member_admin','remove'); return $head; @@ -132,8 +132,9 @@ function member_admin_prepare_head($object) /** * Return array head with list of tabs to view object stats informations - * @param object Member - * @return array head + * + * @param Object $object Member or null + * @return array head */ function member_stats_prepare_head($object) { From ba12c25eec2eb1273a71f61942c4401c05d8d4a6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Dec 2011 00:23:48 +0100 Subject: [PATCH 11/15] Fix: Replacement of adodb is ok now. Fix: Search criteria lost --- htdocs/core/db/mssql.class.php | 2 +- htdocs/core/db/mysql.class.php | 2 +- htdocs/core/db/mysqli.class.php | 2 +- htdocs/core/db/pgsql.class.php | 2 +- htdocs/core/lib/functions.lib.php | 4 +- .../fourn/class/fournisseur.facture.class.php | 8 +- htdocs/fourn/facture/index.php | 76 ++++++++++--------- 7 files changed, 50 insertions(+), 46 deletions(-) diff --git a/htdocs/core/db/mssql.class.php b/htdocs/core/db/mssql.class.php index 87a6c71b188..b845e54cd93 100644 --- a/htdocs/core/db/mssql.class.php +++ b/htdocs/core/db/mssql.class.php @@ -561,7 +561,7 @@ class DoliDBMssql */ function idate($param) { - return dol_print_date($param,"%Y-%m-%d %H:%M:%S",true); + return dol_print_date($param,"%Y-%m-%d %H:%M:%S"); } /** diff --git a/htdocs/core/db/mysql.class.php b/htdocs/core/db/mysql.class.php index a4c6f85c26a..a76db78f8cd 100644 --- a/htdocs/core/db/mysql.class.php +++ b/htdocs/core/db/mysql.class.php @@ -542,7 +542,7 @@ class DoliDBMysql */ function idate($param) { - return dol_print_date($param,"%Y%m%d%H%M%S",true); + return dol_print_date($param,"%Y%m%d%H%M%S"); } /** diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 63ca6341dab..1f48b583386 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -554,7 +554,7 @@ class DoliDBMysqli */ function idate($param) { - return dol_print_date($param,"%Y%m%d%H%M%S",true); + return dol_print_date($param,"%Y%m%d%H%M%S"); } /** diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index f4ece94f448..333a60783a0 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -698,7 +698,7 @@ class DoliDBPgsql */ function idate($param) { - return dol_print_date($param,"%Y-%m-%d %H:%M:%S",true); + return dol_print_date($param,"%Y-%m-%d %H:%M:%S"); } /** diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index be0cd605343..e0ec1192f4f 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -804,13 +804,13 @@ function dol_print_date($time,$format='',$tzoutput='tzserver',$outputlangs='',$e $to_gmt=false; $offsettz=$offsetdst=0; } - if ($tzoutput == 'tzuser') + elseif ($tzoutput == 'tzuser') { $to_gmt=true; $offsettz=(empty($_SESSION['dol_tz'])?0:$_SESSION['dol_tz'])*60*60; $offsetdst=(empty($_SESSION['dol_dst'])?0:$_SESSION['dol_dst'])*60*60; } - if ($tzoutput == 'tzcompany') + elseif ($tzoutput == 'tzcompany') { $to_gmt=false; $offsettz=$offsetdst=0; // TODO Define this and use it later diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 43cfa12ca22..ce7c2a48307 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -253,7 +253,7 @@ class FactureFournisseur extends Facture function fetch($id='',$ref='') { global $langs; - + $sql = "SELECT"; $sql.= " t.rowid,"; $sql.= " t.facnumber,"; @@ -461,9 +461,9 @@ class FactureFournisseur extends Facture if (isset($this->tva)) $this->tva=trim($this->tva); if (isset($this->localtax1)) $this->localtax1=trim($this->localtax1); if (isset($this->localtax2)) $this->localtax2=trim($this->localtax2); - if (isset($this->total)) $this->total=trim($this->total); - if (isset($this->total_ht)) $this->total_ht=trim($this->total_ht); - if (isset($this->total_tva)) $this->total_tva=trim($this->total_tva); + if (empty($this->total)) $this->total=0; + if (empty($this->total_ht)) $this->total_ht=0; + if (empty($this->total_tva)) $this->total_tva=0; // if (isset($this->total_localtax1)) $this->total_localtax1=trim($this->total_localtax1); // if (isset($this->total_localtax2)) $this->total_localtax2=trim($this->total_localtax2); if (isset($this->total_ttc)) $this->total_ttc=trim($this->total_ttc); diff --git a/htdocs/fourn/facture/index.php b/htdocs/fourn/facture/index.php index 8059b2f75ea..ed084001ef6 100644 --- a/htdocs/fourn/facture/index.php +++ b/htdocs/fourn/facture/index.php @@ -29,27 +29,27 @@ require_once(DOL_DOCUMENT_ROOT."/fourn/class/fournisseur.class.php"); require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"); -if (!$user->rights->fournisseur->facture->lire) -accessforbidden(); +if (!$user->rights->fournisseur->facture->lire) accessforbidden(); $langs->load("companies"); $langs->load("bills"); -$socid = $_GET["socid"]; +$socid = GETPOST("socid"); // Security check if ($user->societe_id > 0) { - $_GET["action"] = ''; + $action=''; + $_GET["action"] = ''; $socid = $user->societe_id; } $mode=GETPOST("mode"); $modesearch=GETPOST("mode_search"); -$page=$_GET["page"]; -$sortorder = $_GET["sortorder"]; -$sortfield = $_GET["sortfield"]; +$page=GETPOST("page"); +$sortorder = GETPOST("sortorder"); +$sortfield = GETPOST("sortfield"); if ($page == -1) { $page = 0 ; } $limit = $conf->liste_limit; @@ -59,8 +59,8 @@ $pagenext = $page + 1; if (! $sortorder) $sortorder="DESC"; if (! $sortfield) $sortfield="fac.datef"; -$month =$_GET['month']; -$year =$_GET['year']; +$month = GETPOST('month','int'); +$year = GETPOST('year','int'); /* @@ -122,13 +122,13 @@ if ($_GET["filtre"]) } } -if ($_REQUEST["search_ref"]) +if (GETPOST("search_ref")) { - $sql .= " AND fac.rowid like '%".$db->escape($_REQUEST["search_ref"])."%'"; + $sql .= " AND fac.rowid like '%".$db->escape(GETPOST("search_ref"))."%'"; } -if ($_REQUEST["search_ref_supplier"]) +if (GETPOST("search_ref_supplier")) { - $sql .= " AND fac.facnumber like '%".$db->escape($_REQUEST["search_ref_supplier"])."%'"; + $sql .= " AND fac.facnumber like '%".$db->escape(GETPOST("search_ref_supplier"))."%'"; } if ($month > 0) { @@ -141,24 +141,24 @@ else if ($year > 0) { $sql.= " AND fac.datef BETWEEN '".$db->idate(dol_get_first_day($year,1,false))."' AND '".$db->idate(dol_get_last_day($year,12,false))."'"; } -if ($_GET["search_libelle"]) +if (GETPOST("search_libelle")) { - $sql .= " AND fac.libelle like '%".$db->escape($_GET["search_libelle"])."%'"; + $sql .= " AND fac.libelle like '%".$db->escape(GETPOST("search_libelle"))."%'"; } -if ($_GET["search_societe"]) +if (GETPOST("search_societe")) { - $sql .= " AND s.nom like '%".$db->escape($_GET["search_societe"])."%'"; + $sql .= " AND s.nom like '%".$db->escape(GETPOST("search_societe"))."%'"; } -if ($_GET["search_montant_ht"]) +if (GETPOST("search_montant_ht")) { - $sql .= " AND fac.total_ht = '".$db->escape($_GET["search_montant_ht"])."'"; + $sql .= " AND fac.total_ht = '".$db->escape(GETPOST("search_montant_ht"))."'"; } -if ($_GET["search_montant_ttc"]) +if (GETPOST("search_montant_ttc")) { - $sql .= " AND fac.total_ttc = '".$db->escape($_GET["search_montant_ttc"])."'"; + $sql .= " AND fac.total_ttc = '".$db->escape(GETPOST("search_montant_ttc"))."'"; } $sql.= $db->order($sortfield,$sortorder); @@ -175,11 +175,15 @@ if ($resql) $soc->fetch($socid); } - $param='&socid='.$socid; - if ($month) $param.='&month='.$month; - if ($year) $param.='&year=' .$year; - + if ($month) $param.='&month='.urlencode($month); + if ($year) $param.='&year=' .urlencode($year); + if (GETPOST("search_ref")) $param.='&search_ref='.urlencode(GETPOST("search_ref")); + if (GETPOST("search_ref_supplier")) $param.='&search_ref_supplier'.urlencode(GETPOST("search_ref_supplier")); + if (GETPOST("search_libelle")) $param.='&search_libelle='.urlencode(GETPOST("search_libelle")); + if (GETPOST("search_societe")) $param.='&search_societe='.urlencode(GETPOST("search_societe")); + if (GETPOST("search_montant_ht")) $param.='&search_montant_ht='.urlencode(GETPOST("search_montant_ht")); + if (GETPOST("search_montant_ttc")) $param.='&search_montant_ttc='.urlencode(GETPOST("search_montant_ttc")); print_barre_liste($langs->trans("BillsSuppliers").($socid?" $soc->nom":""),$page,"index.php",$param,$sortfield,$sortorder,'',$num); print '
'; @@ -200,10 +204,10 @@ if ($resql) print ''; print ''; - print ''; + print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -214,14 +218,14 @@ if ($resql) print ''; print ' '; print ''; - print ''; + print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -238,16 +242,16 @@ if ($resql) $obj = $db->fetch_object($resql); $var=!$var; - print ""; - print ''; + print ""; + print ''; $facturestatic->id=$obj->facid; $facturestatic->ref=$obj->ref; $facturestatic->ref_supplier=$obj->facnumber; print $facturestatic->getNomUrl(1); print "\n"; - print ''.dol_trunc($obj->facnumber,10).""; - print ''.dol_print_date($db->jdate($obj->datef),'day').''; - print ''.dol_print_date($db->jdate($obj->date_echeance),'day'); + print ''.dol_trunc($obj->facnumber,10).""; + print ''.dol_print_date($db->jdate($obj->datef),'day').''; + print ''.dol_print_date($db->jdate($obj->date_echeance),'day'); if (($obj->paye == 0) && ($obj->fk_statut > 0) && $db->jdate($obj->date_echeance) < ($now - $conf->facture->fournisseur->warning_delay)) print img_picto($langs->trans("Late"),"warning"); print ''; print ''.dol_trunc($obj->libelle,36).''; From df227422edbfa186491d6c9042ff1d67fee7dce3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Dec 2011 00:30:54 +0100 Subject: [PATCH 12/15] Fix: Adding dictionnary is ok for external modules --- htdocs/core/lib/admin.lib.php | 43 ++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/htdocs/core/lib/admin.lib.php b/htdocs/core/lib/admin.lib.php index 9a92e63ea9c..41efdc2ef3c 100644 --- a/htdocs/core/lib/admin.lib.php +++ b/htdocs/core/lib/admin.lib.php @@ -136,13 +136,13 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='') if (preg_match('/^--\sV(MYSQL|PGSQL|)([0-9\.]+)/i',$buf,$reg)) { $qualified=1; - + // restrict on database type if (! empty($reg[1])) { - if (strtolower($reg[1]) != $db->type) $qualified=0; + if (strtolower($reg[1]) != $db->type) $qualified=0; } - + // restrict on version if ($qualified) { @@ -154,7 +154,7 @@ function run_sql($sqlfile,$silent=1,$entity='',$usesavepoint=1,$handler='') $qualified=0; } } - + if ($qualified) { // Version qualified, delete SQL comments @@ -856,19 +856,40 @@ function complete_dictionnary_with_modules(&$taborder,&$tabname,&$tablib,&$tabsq $orders = array(); $categ = array(); $dirmod = array(); + $modulesdir = array(); $i = 0; // is a sequencer of modules found $j = 0; // j is module number. Automatically affected if module number not defined. - foreach ($conf->file->dol_document_root as $dirroot) - { - $dir = $dirroot . "/core/modules/"; - // Load modules attributes in arrays (name, numero, orders) from dir directory - //print $dir."\n
"; - dol_syslog("Scan directory ".$dir." for modules"); + foreach ($conf->file->dol_document_root as $type => $dirroot) + { + $modulesdir[$dirroot . '/core/modules/'] = $dirroot . '/core/modules/'; + + $handle=@opendir($dirroot); + if (is_resource($handle)) + { + while (($file = readdir($handle))!==false) + { + if (is_dir($dirroot.'/'.$file) && substr($file, 0, 1) <> '.' && substr($file, 0, 3) <> 'CVS' && $file != 'includes') + { + if (is_dir($dirroot . '/' . $file . '/core/modules/')) + { + $modulesdir[$dirroot . '/' . $file . '/core/modules/'] = $dirroot . '/' . $file . '/core/modules/'; + } + } + } + closedir($handle); + } + } + //var_dump($modulesdir); + + foreach ($modulesdir as $dir) + { + // Load modules attributes in arrays (name, numero, orders) from dir directory + //print $dir."\n
"; + dol_syslog("Scan directory ".$dir." for modules"); $handle=@opendir(dol_osencode($dir)); if (is_resource($handle)) { - while (($file = readdir($handle))!==false) { //print "$i ".$file."\n
"; From 1e76d296ae96586d64654a2e0dc7212f391d57fe Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 13 Dec 2011 01:10:07 +0100 Subject: [PATCH 13/15] Qual: Mutualize code --- htdocs/compta/paiement/rapport.php | 42 +++++++++--------------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/htdocs/compta/paiement/rapport.php b/htdocs/compta/paiement/rapport.php index 5a939f37365..877e8121ad7 100644 --- a/htdocs/compta/paiement/rapport.php +++ b/htdocs/compta/paiement/rapport.php @@ -25,10 +25,12 @@ require("../../main.inc.php"); require_once(DOL_DOCUMENT_ROOT."/core/modules/rapport/pdf_paiement.class.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/core/class/html.formother.class.php"); // Security check -if (! $user->rights->facture->lire) -accessforbidden(); +if (! $user->rights->facture->lire) accessforbidden(); + +$action=GETPOST('action'); $dir = $conf->facture->dir_output.'/payments'; @@ -48,7 +50,7 @@ if (! $year) { $year=date("Y"); } * Actions */ -if ($_POST["action"] == 'builddoc') +if ($action == 'builddoc') { $rap = new pdf_paiement($db); @@ -80,6 +82,8 @@ if ($_POST["action"] == 'builddoc') * View */ +$formother=new FormOther($db); + llxHeader(); $titre=($year?$langs->trans("PaymentsReportsForYear",$year):$langs->trans("PaymentsReports")); @@ -92,33 +96,10 @@ print ''; $cmonth = GETPOST("remonth")?GETPOST("remonth"):date("n", time()); $syear = GETPOST("reyear")?GETPOST("reyear"):date("Y", time()); -print '"; -print '\n"; print ''; print ''; print '
'; @@ -183,7 +164,8 @@ if ($year) print ''; } } -$db->close(); llxFooter(); + +$db->close(); ?> From 70bccc91bad2e39c8b2d16c233a47c034326c9d5 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 13 Dec 2011 10:39:59 +0100 Subject: [PATCH 14/15] Fix: instantiate class if needed Fix: reindent and clean code --- htdocs/core/lib/project.lib.php | 183 ++++++++++++++++---------------- 1 file changed, 90 insertions(+), 93 deletions(-) diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php index 8a56766f46c..837123ee9c2 100644 --- a/htdocs/core/lib/project.lib.php +++ b/htdocs/core/lib/project.lib.php @@ -154,99 +154,96 @@ function task_prepare_head($object) */ function select_projects($socid=-1, $selected='', $htmlname='projectid') { - global $db,$user,$conf,$langs; - - $hideunselectables = false; - if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true; - - $projectstatic=new Project($db); - $projectsListId = ''; - if (empty($user->rights->projet->all->lire)) - { - $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1); - } - - // On recherche les projets - $sql = 'SELECT p.rowid, p.ref, p.title, p.fk_soc, p.fk_statut, p.public'; - $sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p'; - $sql.= " WHERE p.entity = ".$conf->entity; - if ($projectsListId) $sql.= " AND p.rowid in (".$projectsListId.")"; - if ($socid == 0) $sql.= " AND (p.fk_soc=0 OR p.fk_soc IS NULL)"; - //if ($socid > 0) $sql.= " AND (p.fk_soc=".$socid." OR p.fk_soc='0' OR p.fk_soc IS NULL)"; // We will filter later - $sql.= " ORDER BY p.title ASC"; - - //print $sql; - //var_dump($user->rights); - dol_syslog("project.lib::select_projects sql=".$sql); - $resql=$db->query($sql); - if ($resql) - { - print ''; - $db->free($resql); - return $num; - } - else - { - dol_print_error($db); - return -1; - } + global $db,$user,$conf,$langs; + + $hideunselectables = false; + if (! empty($conf->global->PROJECT_HIDE_UNSELECTABLES)) $hideunselectables = true; + + $projectsListId = false; + if (empty($user->rights->projet->all->lire)) + { + $projectstatic=new Project($db); + $projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,0,1); + } + + // On recherche les projets + $sql = 'SELECT p.rowid, p.ref, p.title, p.fk_soc, p.fk_statut, p.public'; + $sql.= ' FROM '.MAIN_DB_PREFIX .'projet as p'; + $sql.= " WHERE p.entity = ".$conf->entity; + if ($projectsListId) $sql.= " AND p.rowid IN (".$projectsListId.")"; + if ($socid == 0) $sql.= " AND (p.fk_soc=0 OR p.fk_soc IS NULL)"; + $sql.= " ORDER BY p.title ASC"; + + dol_syslog("project.lib::select_projects sql=".$sql); + $resql=$db->query($sql); + if ($resql) + { + print ''; + $db->free($resql); + return $num; + } + else + { + dol_print_error($db); + return -1; + } } From b9ac42194c65e722c32944383ea2166bb749ccde Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 13 Dec 2011 22:03:30 +0100 Subject: [PATCH 15/15] New: update jQuery library with 1.7.1 version --- COPYRIGHT | 2 +- .../includes/jquery/js/jquery-latest.min.jgz | Bin 32021 -> 33098 bytes .../includes/jquery/js/jquery-latest.min.js | 8 ++++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index bc0a07aa66c..7cc66cff017 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -22,7 +22,7 @@ PHPExcel 1.7.6 LGPL 2.1 Yes Read/Write XLS files, read ODS files TCPDF 5.9.098 LGPL 3.0 Yes PDF generation JS libraries: -jQuery 1.6.4 GPL and MIT Licence Yes JS library +jQuery 1.7.1 GPL and MIT Licence Yes JS library jQuery UI 1.8.16 GPL and MIT Licence Yes JS library plugin UI jQuery Colorpicker 1.1 MIT Licence Yes JS library for color picker for a defined list of colors jQuery DataTable 1.8.1 BSD Yes JS library for tables output diff --git a/htdocs/includes/jquery/js/jquery-latest.min.jgz b/htdocs/includes/jquery/js/jquery-latest.min.jgz index b6ec62ed5cd7271ea31543d2e704293367e30ab1..6f7cf2e5899a60610f722e2a408921aa9f9e98c6 100644 GIT binary patch literal 33098 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 literal 32021 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 E0Cn9Vg8%>k diff --git a/htdocs/includes/jquery/js/jquery-latest.min.js b/htdocs/includes/jquery/js/jquery-latest.min.js index 628ed9b3160..198b3ff07d8 100644 --- a/htdocs/includes/jquery/js/jquery-latest.min.js +++ b/htdocs/includes/jquery/js/jquery-latest.min.js @@ -1,4 +1,4 @@ -/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ -(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
"+""+"
",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
t
",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file